1.元字符
^ 匹配文本开始位置,^称为脱字符
$ 匹配文本的结束位置
. 匹配任意一个字符
\ 转义字符,将特殊字符转成普通字符
限制符:提供计数功能的元字符:
?:匹配前面的子表达式或字符0或1次
*:匹配[ 0, n ]次
+:匹配[ 1, n ]次
{min,max}:匹配至少min次,至多max次
{n} : 匹配n次
{n, }: 匹配至少n次
- 和+ 都是贪婪的,他们会尽可能多的匹配文字
只有在他们后面加上一个? 才可以实现非贪婪(最小匹配)
\d : 匹配一个数字字符;\D匹配非数字字符
\s 匹配一个空白字符
\w 匹配包括任何单词字符,包括下划线字符。等价于[A-Za-z0-9_]
\W匹配非单词。
[ ] 表示一个字符组,一个字符组匹配一个字符,且该位置可以匹配字符组里的任意一个字符
[^ 1-6 ] 表示该位置可以匹配除1-6外的任意字符
()标记一个子表达式,匹配的是一段文字
| 意为 ‘或’ ,| 两边的子表达hi是称为多选分支,例如 (regx1 | regx2)
js中test()方法验证字符串是否跟正则表达式匹配
java中用matches()方法验证boolean falg = str.match(regx);
示例1:
var phone = "a";
var regx = /^[^1-3]$/;
var tar = regx.test(phone);
console.info(tar);//true
2
var phone = "abc123";
var regx = /^([^1-3])*(\d)*$/;
var tar = regx.test(phone);
console.info(tar);//true
var phone = "123abc1";
// +号贪婪匹配,尽可能多的获取字符
//+?非贪婪
var regx = /^\d+/;
var arr = regx.exec(phone);//exec()返回查询到的结果集
for(var i = 0; i <arr.length; i++){
console.info(arr[i]);
}