没事干就学习了一下一直头疼的正则表达式,下面是记录的一些笔记。
正则语法
\w a-zA-Z0-9
\W 非ASCII的
\s 空白格
\S 非空白格
\d 数字
\D 非数字
[...] 方括号的所有
[^...] 非方括号的所有
重复类
{n} 匹配前一项n次 比如/a{3}/i能匹配aaacc
{n,} 匹配前一项至少一次,至多不限
{n,m} 匹配前一项至少n次,最多m次
{?} 匹配前一项0次或者1次
{+} 匹配前一项至少1次
{*} 匹配前一项0次或多次
选择符
| 分隔可以用来选择的文字 比如/a|b/i
定位符
^ 匹配字符串的开头
$ 匹配字符串的结尾
\b 匹配一个单词的边界
\B 与\b相反,匹配一个非单词边界
标志
i 匹配时不区分大小写
g 匹配时执行全局匹配
m 匹配时执行多行匹配
特殊记录
\u4e00-\u9fa5 中文
\x00-\xff 双字节
/[^\w\u4e00-\u9fa5]/g 匹配所有非特殊字符
function getLength(str){
// 统计字符长度
return str.replace(/[^\x00-xff]/g,"xx").length;
}
test
str = 'afaz';
rep=/(a[f-z]){2}/i; //a开头后面必须跟f-z的字符,而且必须为两组才能通过













发表评论: