正则中共有 6 个位置标示符号
^、$、\b、\B、(?=p)、(?!p)
注意,位置符号指的是字符之间的空隙,可以理解为”"
^ | 标示开头 |
$ | 标示结尾 |
\b | 指的是单词边界
具体就是 \w 与 \W 之间的位置,也包括 \w 与 ^ 之间的位置,和 \w 与 $ 之间的位置
"[JS] Lesson_01.mp4".replace(/\b/g, '#’) "[#JS#] #Lesson_01#.#mp4#" |
\B | 非单词边界
"[JS] Lesson_01.mp4".replace(/\B/g, '#’); "#[J#S]# L#e#s#s#o#n#_#0#1.m#p#4" |
(?=p) | 指的是 p 表达式前面的位置
"hello".replace(/(?=l)/g, '#’) "he#l#lo”
"12345678".replace(/(?=\d{3}$)/g, ',’) “12345,678"
从结尾向前数,一但是 3 的倍数,就把其前面的位置替换成逗号: "12345678".replace(/(?=(\d{3})+$)/g, ',’) “12,345,678”
var regex = /(?!^)(?=(\d{3})+$)/g; "123456789".replace(regex, ',’); "123,456,789" |
(?!p) | 指的是 非 p 表达式之前的位置
"hello".replace(/(?!l)/g, '#’); "#h#ell#o#" |