聊聊JavaScript正则表达式
/正则表达式主体/修饰符(可选)igm
i是对大小写不敏感
g是查找所以符合条件的匹配而不是找到第一个就停止
m是多行匹配
str.search()查找某字符位置
str.replace(a,b)a可以是字符串也可以是正则/主体/ b是字符串
reg.test(字符串)正则表达式方法 符合规则返回true
reg是正则表达式
reg.exec()方法返回结果数组
数字:^ [0-9]$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$
汉字:^ [\u4e00-\u9fa5]{0,}$
英文和数字:^ [A-Za-z0-9]+$ 或 ^ [A-Za-z0-9]{4,40}$
长度为3-20的所有字符:^.{3,20}$
Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)$
手机^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符
X:( ^ \d{15} $)|(^ \d{18} $)|(^\d{17}(\d|X|x) $)
HTML标记的正则表达式:<(\S?) [ ^>]>.?|<.*? />*
中文字符的正则表达式:[\u4e00-\u9fa5]
php里面匹配中文\x{4e00}-\x{9fa5}
之前提过截取中文md_substr因为编码引起的字节长短不一样
let a = /[!-\/:-@\[-`{-~]/
let s = /^(?:(?=[^\n\d]*\d)(?=[^\nA-Z]*[A-Z])(?=[^\na-z]*[a-z])|(?=[^\nA-Z]*[A-Z])(?=[^\na-z]*[a-z])(?=.*[!-\/:-@\[-`{-~])|(?=[^\n\d]*\d)(?=[^\nA-Z]*[A-Z])(?=.*[!-\/:-@\[-`{-~])|(?=[^\nA-Z]*[A-Z])(?=[^\na-z]*[a-z])(?=.*[!-\/:-@\[-`{-~]))[\da-zA-Z!-\/:-@\[-`{-~]{8,40}$/
版权声明
本文仅代表作者观点,不代表博信信息网立场。