聊正则之前说一下了解正则的必要性吧。在做项目的时候发现需要匹配出空格也就“ & n b s p;” 一半方法不好找到 使用正则就比较好找。还有就是金钱格式化,我们可以写一个函数 用到正则时可以 replace(/ \B ( ?= ( \d { 3}) +$) I g ,’,’) 就得到想要的格式了,等等。
-
常用元字符
/:一般是指一个匹配的开始
. : 单个字符(非换行和行结束符)
^:匹配一行的开头
$: 匹配一行的结尾
\w:单词字符
\W: 非单词字符
\d:数字
\D: 非数组
\s: 空白字符
\S:非空白字符
\b:匹配单词边界
\B:非单词边界
\0: 查找NULL字符
\n:换行字符
\r: 回车
还有\f、\t、\v、\xxx、\xdd、\uxxx等我感觉很不常用,想学习自行了解
解释:1、说一下\w 和 \d 一开始我认为\w是单词 但不是,\w是数字字母(大小写)
下划线,还有 希腊字母 俄文字母 可以理解为是我们常用的单词字符都可以。\d就是只数字0-9
2、\b字符边界也说一下:就是单词的边界 比如‘123,’ 那么 3和‘,’中间就是单词边界
3、‘/’和‘\’的区别 ‘/’ 匹配开头 /w 是匹配已w开头 而‘\’是转译为特殊字符 \w 就是匹配单词字符 -
限定符
*:重复匹配0次或更多次既0,1,2,3…
+:重复一次或多次
?:0次或1次
{n}:n次
{n,}:n次或更多即大于等于n
{n,m}:n到m次 例:{2,8} 重复2-8次 -
特殊参数
i:忽略大小写
g:全局匹配
gi:忽略大小写全局匹配 -
括号的含义
():一个大单元 (123)就是匹配出(123)这个 将123 看作一个整体
[]: 一个选择区域 [123]就是匹配1/2/3
{}:匹配长度 如上面说的限定符 {2} {2,8}等等
解释一下
var str1 = '124'
alert(str1.match('(123)'))
alert(str1.match('[123]'))
// null
// 1
// (123) 是一个整体 所以匹配不出来 结果为null [123] 里面的每个字符都是单独的可以匹配到
// 特殊一点
alert(str1.match('[(123)]'))
// 1
// [] 中会把特殊字符'('和')' 当成普通字符 也就是会匹配(、1、2、3、)这5个字符
- 其他符号
[^abc] : 不匹配集合中的任何一个字符
a|b: a或者b
(?=)
(?!)
(?<=)
(?<!)
这几个一时半会不好说 大家自行百度哈