^
$
\b
\B
(?=p)
(?!p)
字符 | 匹配含义 |
---|---|
^ |
匹配字符串的开头 |
$ |
匹配字符串的结尾 |
\b |
单词边界, 具体就是 \w 与 \W 之间的位置, 以及字符串的开始位置和结尾位置 |
\B |
是 /b 之外的位置 |
(?=P) |
p 是一个模式, 这个正则表达式匹配的是P 之前的位置, 或者当前位置之后的字符要匹配正则表达式 P |
(?!P) |
这个与 (?=P) 意思相反, 是除了 (?=P) 之外的位置 |
^
以及 $
用于匹配字符串开头或者字符串结尾的位置:如下例子:将字符的开头和结尾添加特定的字符:1 | let str = 'hello'; |
replace
代替 trim
方法:1 | let str = ' hell o '; |
\b
以及 \B
使用 \b
的作用是匹配单词边界之间的位置, 具体而言是 \w
以及 \W
之间的位置:\w
: 匹配单词字符, 字符包括字母, 汉字, 下划线以及数字示例如下:1 | let str = 'hel lo'; |
\B
则和 \b
相反, 匹配的位置是单词字符内的位置:1 | regex = /\B/g; |
(?=P)
以及 (?!P)
使用 (?=P)
用来匹配特定字符前的位置, P
是一个正则表达式;如下: 给单词中的 l 字符前面添加字符 #
:1 | regex = /(?=l)/g; |
*
1 | regex = /(?=\w)/g; |
(?!P)
用来匹配除了匹配到的正则表达式 P 之前位置之外的其他位置:例如上面的例子, 我们使用 (?!P)
来代替 (?=P)
:1 | regex = /(?!l)/; |
(?!^)(?!$)
是匹配除了单词开头和结尾的位置, 这里可以使用 /B
来进行代替; regex = /(?!l)(\B)/
如下, 给一个数字添加千位分隔符 ',' 1 | let str = "12345678"; |
1 | (\d{3})+$ // 匹配结尾处向前 3 个或者多个 3 字符倍数的字符 |
1 | (?=(\d{3})+$) // 匹配 3 个字符或者 3 个字符倍数的字符前面的位置 |
1 | (?!^) // 匹配非开头的位置 |
¥
1 | let number = '1234'; |
1 | let str = 'str123'; |
?!P
进行判断判断字符中不能全部为数字的反义为全部为数字:那么判断全部为数字的正则表达式为:1 | // 判断6位字符串中全部为数字 |
?!
和 ?=
互为反义, 因此, 判断不能全部为数字的正则如下:1 | let regex = /(?![0-9]{6})/ |