- 在正则表达式中,如果直接给出字符,就是精确匹配。
- 用
\d
可以匹配一个数字 \w
可以匹配一个字母或数字.
可以匹配任意字符\s
匹配一个空格(包括tab等空白字符)\s+
表示至少有一个空格^
表示行的开头,^\d
表示必须以数字开头。$
表示行的结束,\d$
表示必须以数字结束
要匹配变长的字符,在正则表达式中 :
- 用
*
表示任意个字符(包括0个) - 用
+
表示至少一个字符 - 用
?
表示0个或1个字符 - 用
{n}
表示n个字符 - 用
{n,m}
表示n-m个字符例子:
```javascript \d{3}\s+\d{3,8} //可以匹配以任意个空格隔开的带区号的电话号码(010 12345)
\d{3} : 表示匹配三个数字,如:010 \s+ : 表示至少有一个空格 如:’ ‘,’\t\t’等 \d{3,8} : 表示3-8个数字,如’1234567’
- 如果要匹配'010-12345'这样的号码呢?
```javascript
\d{3}\-\d{3,8}
//'-'是特殊字符,在正则表达式中,要用'\'转义
进阶
- 要做更精确地匹配,可以用
[]
表示范围,比如: [0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线;[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串;[a-zA-Z\_\$][0-9a-zA-Z\_\$]*
可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名;[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}
更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。A|B
可以匹配A或B,所以(J|j)ava(S|s)cript可以匹配’JavaScript’、’Javascript’、’javaScript’或者’javascript’。创建一个正则表达式:
- 直接通过/正则表达式/写出来
var re1 = /ABC\-001/;
- 通过new RegExp(‘正则表达式’)创建一个RegExp对象
因为字符串的转义问题,字符串的两个\实际上是一个\
var re2 = new RegExp('ABC\\-001');
- 两种写法是一样的:
re1; // /ABC\-001/
re2; // /ABC\-001/
三位数校验:
{ required: true, message: '请输入序号' },
{ pattern: /^[0-9]{1,3}$/, message: '范围在0-999', trigger: 'blur' }