对php常用正则表达式汇总感兴趣的小伙伴,下面一起跟随脚本之家 jb51.cc的小编两巴掌来看看吧! 常用的数字正则(严格匹配) 正则 含义 ^[1-9]d*$ 匹配正整数 ^-[1-9]d*$ 匹配负整数 ^-?[1-9]d*$ 匹配整数 ^[1-9]d*|0$ 匹配非负整数(正整数 + 0) ^-[1-9]d*|0$ 匹配非正整数(负整数 + 0) ^[1-9]d*.d*|0.d*[1-9]d*$ 匹配正浮点数 ^-([1-9]d*.d*|0.d*[1-9]d*)$ 匹配负浮点数 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ 匹配浮点数 ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ 匹配非负浮点数(正浮点数 + 0) ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ 匹配非正浮点数(负浮点数 + 0) ---------------------------------------------------------------------------------------------------------------- 常用字符串正则 正则 含义 补充 ^[A-Za-z]+$ 匹配由26个英文字母组成的字符串 或 /^[a-z]+$/i ^[A-Z]+$ 匹配由26个英文字母的大写组成的字符串 ^[a-z]+$ 匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$ 匹配由数字和26个英文字母组成的字符串 注意w包含下划线_ ^w+$ 匹配由数字、26个英文字母或者下划线组成的字符串 常用数字正则和常用字符串正则,是最基本的正则应用,读者可以作为入门的练习,试试能不能快速的读懂其中的含义。 ---------------------------------------------------------------------------------------------------------------- 匹配中文字符 普遍使用的正则是[u4e00-u9fa5],但这个范围并不完整。例如: /[u4e00-u9fa5]/.test('中国') // 测试部首,返回false 根据Unicode 5.0版编码,要准确的判断一个中文字符要包括: 范围 含义 范围 含义 2E80-2EFF CJK 部首补充 2F00-2FDF 康熙字典部首 3000-303F CJK 符号和标点 31C0-31EF CJK 笔画 3200-32FF 封闭式 CJK 文字和月份 3300-33FF CJK 兼容 3400-4DBF CJK 统一表意符号扩展 A 4DC0-4DFF 易经六十四卦符号 4E00-9FBF CJK 统一表意符号 F900-FAFF CJK 兼容象形文字 FE30-FE4F CJK 兼容形式 FF00-FFEF 全角ASCII、全角标点 因此,正确的匹配中文字符正则表达式为: var rcjk = /[u2E80-u2EFFu2F00-u2FDFu3000-u303Fu31C0-u31EFu3200-u32FFu3300-u33FFu3400-u4DBFu4DC0-u4DFFu4E00-u9FBFuF900-uFAFFuFE30-uFE4FuFF00-uFFEF]+/g; 如果不希望匹配标点、符号,在正则中去掉对应的范围即可: 3000-303F CJK 符号和标点 FF00-FFEF 全角ASCII、全角标点 ---------------------------------------------------------------------------------------------------------------- 匹配双字节字符(包括汉字在内) [^x00-xff],可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1),代码示例如下: console.info( "abc".replace( /[^x00-xff]/g,"aa" ).length ) // 3 console.info( "汉字".replace( /[^x00-xff]/g,"aa" ).length ) // 4 console.info( "abc汉字".replace( /[^x00-xff]/g,"aa").length ) // 7 (编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|