PHP中用正则表达式验证中文的问题
2008-12-11 21:16
453 查看
str = '中华人民共和国123456789abcdefg';
echo preg_match("/^[\u4e00-\u9fa5_a-zA-Z0-9]{3,15}",strName);
运行一下上面这段代码,看会有什么提示信息?
Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 3 in F:\wwwroot\php\test.php on line 2
原来,PHP正则表达式中不支持下列 Perl 转义序列:\L, \l, \N, \P, \p, \U, \u, or \X
在 UTF-8 模式下,允许用“\x{...}”,花括号中的内容是表示十六进制数字的字符串。原来的十六进制转义序列 \xhh 如果其值大于 127 的话则匹配了一个双字节 UTF-8 字符。
所以,可以这样来解决preg_match("/^[\x80-\xff_a-zA-Z0-9]{3,15}",strName);
echo preg_match("/^[\u4e00-\u9fa5_a-zA-Z0-9]{3,15}",strName);
运行一下上面这段代码,看会有什么提示信息?
Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 3 in F:\wwwroot\php\test.php on line 2
原来,PHP正则表达式中不支持下列 Perl 转义序列:\L, \l, \N, \P, \p, \U, \u, or \X
在 UTF-8 模式下,允许用“\x{...}”,花括号中的内容是表示十六进制数字的字符串。原来的十六进制转义序列 \xhh 如果其值大于 127 的话则匹配了一个双字节 UTF-8 字符。
所以,可以这样来解决preg_match("/^[\x80-\xff_a-zA-Z0-9]{3,15}",strName);
相关文章推荐
- PHP 正则表达式验证中文的问题
- PHP 正则表达式验证中文的问题
- PHP 正则表达式验证中文的问题
- PHP 正则表达式验证中文的问题
- PHP 伪静态 网址参数中的【中文正则表达式】问题
- PHP正则表达式验证是否含有中文
- PHP 正则表达式 匹配中文
- 使用正则表达式获取url中的中文参数值出现乱码问题
- (转)最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
- PHP正则表达式,关于PHP正则表达式的问题
- js中正则验证中文的问题
- PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
- jQuery 找回密码三步验证邮箱正则表达式 验证手机 获取验证码倒计时 php版
- php用户注册信息验证正则表达式
- php正则表达匹配中文问题分析小结
- PHP正则表达式 验证电子邮件地址
- php用正则表达式截取中文字符串的函数
- 表单验证 正则表达式实例 Email验证 电话号码验证 中文汉字验证
- JavaBean学习中邮箱验证正则表达式问题
- php利用正则表达式解决采集内容排版问题