常⽤的正则表达式有哪些?
常⽤正则表达式
正则表达式⽤于字符串处理、表单验证等场合,实⽤⾼效。现将⼀些常⽤的表达式收集于此,以备不时之需。
匹配中⽂字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中⽂还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以⽤来计算字符串的长度(⼀个双字节字符长度计2,ASCII字符计1)
匹配空⽩⾏的正则表达式:\n\s*\r
评注:可以⽤来删除空⽩⾏
匹配HTML标记的正则表达式:< (\S*?)[^>]>.?|< .? />
评注:⽹上流传的版本太糟糕,上⾯这个也仅仅能匹配部分,对于复杂的嵌套标记依旧⽆能为⼒
匹配⾸尾空⽩字符的正则表达式:^\s |\s*$
评注:可以⽤来删除⾏⾸⾏尾的空⽩字符(包括空格、制表符、换页符等等),⾮常有⽤的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
评注:表单验证时很实⽤
匹配⽹址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:⽹上流传的版本功能很有限,上⾯这个基本可以满⾜需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):[a-zA-Z0-9_]{4,15}$
评注:表单验证时很实⽤
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-******* 或 021-********
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国:[1-9]\d{5}(?!\d)
评注:中国为6位数字
匹配⾝份证:\d{15}|\d{18}
评注:中国的⾝份证为15位或18位
匹配ip地址:\d+.\d+.\d+.\d+
评注:提取ip地址时有⽤
匹配特定数字:
\d*KaTeX parse error: Undefined control sequence: \d at position 23: …配正整数 ^-[1-9]\d *  //匹配负整数
^-?[1-9]\d*KaTeX parse error: Undefined control sequence: \d at position 20: …/匹配整数 ^[1-9]\d *|0  //匹配⾮负整数(正整数 + 0)
^-[1-9]\d*|0KaTeX parse error: Undefined control sequence: \d at position 31: … + 0) ^[1-9]\d *\.\d*|0\.\d*[1…  //匹配正浮点数
^-([1-9]\d*.\d*|0.\d*[1-9]\d*)KaTeX parse error: Undefined control sequence: \d at position 24: …点数 ^-?([1-
9]\d *\.\d*|0\.\d*[1…  //匹配浮点数
\d*.\d*|0.\d*[1-9]\d*|0?.0+|0KaTeX parse error: Undefined control sequence: \d at position 36: …0) ^(-([1-
9]\d *\.\d*|0\.\d*[1…  //匹配⾮正浮点数(负浮点数 + 0)
评注:处理⼤量数据时有⽤,具体应⽤时注意修正
匹配特定字符串:
+  //匹配由26个英⽂字母的⼤写组成的字符串
+  //匹配由数字和26个英⽂字母组成的字符串^\w+$  //匹配由数字、26个英⽂字母或者下划线组成的字符串
  //匹配由26个英⽂字母组成的字符串A −[Z ]+  //匹配由26个英⽂字母的⼩写组成的字符串A −[Za −z 0−9]+
“^\d+”  //正整数
“^((-\d+)|(0+))”  //负整数
“^-?\d+KaTeX parse error: Undefined control sequence: \d at position 14: "    //整数 "^\d +(\.\d+)?”  //⾮负浮点数(正浮点数 + 0)
“^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))KaTeX parse error: Undefined control sequence: \d at position 17: …  //正浮点数 "^((-\d +(\.\d+)?)|(0+(…”  //⾮正浮点数(负浮点数 + 0)
“^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))KaTeX parse error: Undefined control sequence: \d at position 17: …  //负浮点数 "^(-?\d +)(\.\d+)?”  //浮点数
“+”  //由26个英⽂字母的⼤写组成的字符串
“+”  //由数字和26个英⽂字母组成的字符串
“^\w+KaTeX parse error: Undefined control sequence: \w at position 33: …者下划线组成的字符串 "^[\w -]+(\.[\w-]+)*@…”    //email地址
“+://(\w+(-\w+))(.(\w+(-\w+)))(?\S )?/ // 年-⽉-⽇
/^((0([1-9]{1}))|(1[1|2]))/(()|(3[0|1]))/(d{2}|d{4})” //Emil
/^((+?[0-9]{2,4}-[0-9]{3,4}-)|([0-9]{3,4}-))?([0-9]{7,8})(-[0-9]+)?" //IP地址
匹配中⽂字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空⾏的正则表达式:\n[\s| ]\r
匹配HTML标记的正则表达式:/<(.)>.</\1>|<(.) />/
匹配⾸尾空格的正则表达式:(^\s*)|(\s*KaTeX parse error: Undefined control sequence: \w at position 19: …配Email地址的正则表达式:\w +([-+.]\w+)*@\w…
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):[a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
⼿机号:^1[3|4|5|7|8][0-9]\d{4,8}$
或者 ^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\d{8}$
匹配腾讯QQ号:[1-9][0-9]$
元字符及其在正则表达式上下⽂中的⾏为:
\ 将下⼀个字符标记为⼀个特殊字符、或⼀个原义字符、或⼀个后向引⽤、或⼀个⼋进制转义符。
^ 匹配输⼊字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。$ 匹配输⼊字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。匹配前⾯的⼦表达式零次或多次。
匹配前⾯的⼦表达式⼀次或多次。+ 等价于 {1,}。
匹配前⾯的⼦表达式零次或⼀次。 等价于 {0,1}。
{n} n 是⼀个⾮负整数,匹配确定的n 次。
{n,} n 是⼀个⾮负整数,⾄少匹配n 次。
{n,m} m 和 n 均为⾮负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。
当该字符紧跟在任何⼀个其他限制符 (, +, ?, {n}, {n,}, {n,m}) 后⾯时,匹配模式是⾮贪婪的。⾮贪婪模式尽可能少的匹配所搜索的字符串,⽽默认的贪婪模式则尽可能多的匹配所搜索的字符串。
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使⽤象 ’[.\n]’ 的模式。
(pattern) 匹配pattern 并获取这⼀匹配。
(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是⼀个⾮获取匹配,不进⾏存储供以后使⽤。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查字符串。这是⼀个⾮获取匹配,也就是说,该匹配不需要获取供以后使⽤。
(?!pattern) 负向预查,与(?=pattern)作⽤相反
x|y 匹配 x 或 y。
[xyz] 字符集合。
[^xyz] 负值字符集合。
[a-z] 字符范围,匹配指定范围内的任意字符。
[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
\b 匹配⼀个单词边界,也就是指单词和空格间的位置。
"  //⾮负整数(正整数+0)"0−[9]∗[1−9][0−9]∗"  //⾮正整数(负整数+0)"[0−−9]∗[1−9][0−9]∗"  //由26个英⽂字母组成的字符串"A −[Z ]+"  //由26个英⽂字母的⼩写组成的字符串"A −[Za −z 0−9]+"  //url /d 2∣d 4)−(((0([1−9]1))∣(1[1∣2]))−(([0−2]([1−9]1))∣(3[0∣1]))///⽉/⽇/年"[w −(.]+)@(([[0−9]1,3.[0−9]1,3.[0−9]1,3.)∣(([w −]+.)+))([a −zA −Z ]2,4∣[0−9]1,3)(]?)///电话号码"d 1,2∣1dd ∣2[0−(4]d ∣25[0−
5]).(d 1,2∣1dd ∣2[0−4]d ∣25[0−5]).(d 1,2∣1dd ∣2[0−4]d ∣25[0−5]).(d 1,2∣1dd ∣2[0−4]d ∣25[0−5])
\b 匹配⼀个单词边界,也就是指单词和空格间的位置。
\B 匹配⾮单词边界。
\cx 匹配由x指明的控制字符。
\d 匹配⼀个数字字符。等价于 [0-9]。
\D 匹配⼀个⾮数字字符。等价于 [^0-9]。
\f 匹配⼀个换页符。等价于 \x0c 和 \cL。
\n 匹配⼀个换⾏符。等价于 \x0a 和 \cJ。
\r 匹配⼀个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空⽩字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S 匹配任何⾮空⽩字符。等价于 [^ \f\n\r\t\v]。
\t 匹配⼀个制表符。等价于 \x09 和 \cI。
\v 匹配⼀个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何⾮单词字符。等价于 ’[^A-Za-z0-9_]’。
\xn 匹配 n,其中 n 为⼗六进制转义值。⼗六进制转义值必须为确定的两个数字长。
\num 匹配 num,其中num是⼀个正整数。对所获取的匹配的引⽤。
\n 标识⼀个⼋进制转义值或⼀个后向引⽤。如果 \n 之前⾄少 n 个获取的⼦表达式,则 n 为后向引⽤。否则,如果 n 为⼋进制数字(0-7),则 n 为⼀个⼋进制转义值。
\nm 标识⼀个⼋进制转义值或⼀个后向引⽤。如果 \nm 之前⾄少有is preceded by at least nm 个获取得⼦表达式,则 nm 为后向引⽤。如果 \nm 之前⾄少有 n 个获取,则 n 为⼀个后跟⽂字 m 的后向引⽤。如果前⾯的条件都不满⾜,若 n 和 m 均为⼋进制数字(0-7),则 \nm 将匹配⼋进制转义值 nm。
\nml 如果 n 为⼋进制数字 (0-3),且 m 和 l 均为⼋进制数字 (0-7),则匹配⼋进制转义值 nml。
\un 匹配 n,其中 n 是⼀个⽤四个⼗六进制数字表⽰的Unicode字符。
匹配中⽂字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空⾏的正则表达式:n[s| ]r
匹配HTML标记的正则表达式:/<(.)>.</1>|<(.) />/
匹配⾸尾空格的正则表达式:(^s)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*
匹配⽹址URL的正则表达式:([w-]+.)+[w-]+(/[w- ./?%&=]*)?
利⽤正则表达式限制⽹页表单⾥的⽂本框输⼊内容:
⽤正则表达式限制只能输⼊中⽂:οnkeyup=“place(/[^u4E00-u9FA5]/g,’’)”
onbeforepaste=“clipboardData.setData(‘text’,Data(‘text’).replace(/[^u4E00-u9FA5]/g,’’))”⽤正则表达式限制只能输⼊全⾓字符: οnkeyup=“place(/[^uFF00-uFFFF]/g,’’)”
onbeforepaste=“clipboardData.setData(‘text’,Data(‘text’).replace(/[^uFF00-uFFFF]/g,’’))”⽤正则表达式限制只能输⼊数字:οnkeyup="place(/[^d]/g,’’)
"onbeforepaste=“clipboardData.setData(‘text’,Data(‘text’).replace(/[^d]/g,’’))”
⽤正则表达式限制只能输⼊数字和英⽂:οnkeyup="place(/[W]/g,’’)
"onbeforepaste=“clipboardData.setData(‘text’,Data(‘text’).replace(/[^d]/g,’’))”
1. 0-9
2. 0-9
3. 0-9
4. A-Za-z
5. a-z正则表达式提取中文
6. a-zA-Z
7. 1-9
8. 1-9
9. A-Za-z
10. a-z
11. A-Za-z
12. a-z
13. a-zA-z
14. a-zA-Z
15. 1-9

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。