javaScript基础语法之正则表达式

正则表达式规则

表达式 描述
[0-9] 查找任何从 0 至 9 的数字。例如,匹配: '111' ,不匹配:'eee'
[abc] 查找方括号之间的任何字符。例如,/[123]/ 匹配 "1234567" 中的 "123","1" 中的 "1"。但是不匹配 "4567890"。
[^abc] 查找任何不在方括号之间的字符。例如,/[^123]/ 匹配 "4567890" 中的 "4567890"。但是不匹配 "1"、"2"、"3、"123"等。
[a-z] 查找任何从小写 a 到小写 z 的字符。例如,/[a-z]/ 匹配任意小写字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。例如,/[A-Z]/ 匹配任意大写字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。例如,/[A-z]/ 匹配任意小写大写字符。
(a) 查找任何指定的选项。例如,/(a)/匹配"a"。
\d 查找数字。相反的是\D查找非数字字符。
\s 查找空白字符。相反的是\S查找非空白字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。 比如/[1]/匹配任意中文
'n{X}' 匹配包含 X个 n 的序列的字符串。 比如/[2]{2,4}/匹配2-4字的中文,一般符合姓名规则
^n 匹配任何开头为 n 的字符串。 比如/^1/匹配以1开头的任意字符串
?=n 匹配任何其后紧接指定字符串 n 的字符串。 比如/(?=(1))/匹配'331'
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。 比如/(?!(1))/匹配'33'
n$ 匹配任何结尾为 n 的字符串。 比如/\d$/匹配'111', 但不匹配: 'eee'

常用正则表达式

手机号

/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
这个就是以1开头,然后第二位是[3456789],第三位和第二位关联对应的数字,后面8位是数字就可以了

中文姓名

/^[\u4e00-\u9fa5]{2,4}/
这个就是2-4位的中文

座机号码

/^(0\d{2,3})-?(\d{7,8})$/
这个就是第一位是0,后面可能是2或3位数字,之后-后面是7或者8位数字

邮政编码

/^[1-9]\d{5}$/
这个就是[1-9]开头的数字,然后后面5位任意数字

了解清楚正则表达式规则,就可以很方便查找到需要的字符,然后可以任意查询、替换等操作。

支持正则表达式的 String 对象的方法

方法 描述
search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。

举例

search方法

'123eee33ZZxx'.search(/[A-z]/) //查找大小写字符,返回索引3

match方法

'123eee33ZZxx'.match(/[A-z]/g) //全局找到大小写字符,返回e,e,e,Z,Z,x,x

replace方法

'123eee33ZZxx'.replace(/\d/, '') //替换数字,返回23eee33ZZxx
'123eee33ZZxx'.replace(/\d/g, '') //全局替换数字,返回eeeZZxx

split方法

'123eee33ZZxx'.split(/\d/) //以数字来分割字符串,返回'','','','eee','','ZZxx'


  1. \u4e00-\u9fa5 ↩︎

  2. \u4e00-\u9fa5 ↩︎

热门相关:我的治愈系游戏      梦回大明春      长筒袜