JavaScript(7)正则表达式
regular expression,描述了一种字符串的匹配模式。
可以用来检查一段文字是否含有某个字符串。
由普通字符(a-z)以及特殊字符组成的文字模式。
字符 | 作用 |
---|---|
普通字符 | [1-9a-zA-Z~-]等等,包含所有大写和小写字母,标点符号和其他符号,对应匹配。 |
^ | 匹配字符串的开始位置 |
$ | 匹配字符串的结束位置 |
| | 或,要匹配 | ,需要使用\ |
{n} | n为非负的整数,匹配确定的n次 |
{n,} | n为非负整数,匹配至少n次 |
{n,m} | 都为非负整数,匹配n到m次 |
一些简写:
字符 | 作用 |
---|---|
? | {0,1} 表示出现或者不出现 |
+ | {1,}表示至少出现1次 |
* | {0,}表示出现任意次,包括不出现 |
\d | [0-9] |
\D | [^0-9] |
\w | [0-9a-zA-Z_] |
\W | [^0-9a-zA-Z_] |
使用的时候可以理解为: 取值范围 + 量词
这样的组合。
// 匹配 第一位是数字1-9,紧接着4到10位的数字
/[1-9][0-9]{4,10}/
var pattern = /[1-9][0-9]{4,10}/;
pattern.test(1234567890);
// 国内电话号码
025-81234567
// 数字0 1个,数字0~9 2个, - 1个 , 1~9 1个 , 0~9 7个
/^0[0-9]{2}-[1-9]{1}[0-9]{7}$/
//匹配16进制颜色
#ffbbdd
#ffE
var pattern = /^(#[0-9a-fA-F]{6})|(#[0-9a-fA-F]{3}) $/
//匹配时间
23:01
01:23
var pattern = /^([0-1][0-9])|([2][0-3]):[0-5][0-9]$/