常用正则表达式(字符)

校验邮箱正则表达式

  // 校验邮箱规则
    var checkEmail = (rules, value, callback) => {
      const regEmail = /^([a-zA-Z0-9_-])+@+([a-zA-Z0-9_-])+([\.[a-zA-Z0-9_-]])+/
      if (regEmail.text(value)) {
        return callback()
      }
      callback(new error('请输入合法的邮箱'))
    }

校验手机号正则表达式

  // 校验手机规则
    var checkMobile = (rules, value, cb) => {
      const regMobile = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57]|19[0267])[0-9]{8}$/
      if (regMobile.text(value)) {
        return cb()
      }
      cb(new error('请输入合法的手机号'))
    }

校验固定电话号正则表达式

 // 校验固定电话号
 var checkTel= (rules, value, cb) => {
      const regtel = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)
      if (regtel.text(value)) {
        return cb()
      }
      cb(new error('请输入合法的电话号'))
    }

校验身份证正则表达式

 // 校验身份证规则
  var checkIDcard = (rules, value, cb) => {
    const regIDcard = (^\d{15}$)|(^\d{17}([0-9]|X)$)
    if (regIDcard.text(value)) {
      return cb()
    }
    cb(new error('请输入合法的身份证号'))
  }

其他常用

提取信息中的网络链接: (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

提取信息中的邮件地址: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

提取信息中的图片链接: (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

提取信息中的IP地址: (\d+)\.(\d+)\.(\d+)\.(\d+)

提取信息中的中国电话号码(包括移动和固定电话): (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

提取信息中的中国邮政编码: [1-9]{1}(\d+){5}

提取信息中的中国身份证号码: \d{18}|\d{15}

提取信息中的整数: \d+

提取信息中的浮点数(即小数): (-?\d*)\.?\d+

提取信息中的任何数字: (-?\d*)(\.\d+)?

提取信息中的中文字符串: [\u4e00-\u9fa5]*

提取信息中的双字节字符串 (汉字): [^\x00-\xff]*
使用正则表达式的方法
方法 描述
exec 一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回 null)。
test 一个在字符串中测试是否匹配的RegExp方法,它返回 true 或 false。
match 一个在字符串中执行查找匹配的String方法,它返回一个数组,在未匹配到时会返回 null。
matchAll 一个在字符串中执行查找所有匹配的String方法,它返回一个迭代器(iterator)。
search 一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。
replace 一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
split 一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的 String 方法。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

特殊字符

正则表达式标志
标志 描述
g 全局搜索。
i 不区分大小写搜索。
m 多行搜索。
s 允许 . 匹配换行符。
u 使用unicode码的模式进行匹配。
y 执行“粘性”搜索,匹配从目标字符串的当前位置开始,可以使用y标志。
字符 含意
\

做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 
-或- 
对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。

^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz] 不匹配这个集合中的任何一个字符
[\b] 匹配一个退格符
\b 匹配一个单词的边界
\B 匹配一个单词的非边界
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一个制表符
\v 匹配一个重直制表符
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

 使用方式

用re = new RegExp("pattern",["flags"]) 的方式比较好 
pattern : 正则表达式 
flags: g (全文查找出现的所有 pattern) 
i (忽略大小写) 
m (多行查找)

vaScript动态正则表达式问题

请问正则表达式可以动态生成吗? 
例如JavaScript中: 
var str = "strTemp"; 
要生成: 
var re = /strTemp/; 
如果是字符连接: 
var re = "/" + str + "/"即可 
但是要生成表达式,可以实现吗?怎样实现?

猜你喜欢

转载自www.cnblogs.com/whoamimy/p/12435839.html