使用js正则匹配和替换淘口令边界

淘口令是自己生生成的,会有类似于这样的淘口令
'(sI3d1P2ZcLb)''¥OHs21P2ZYu7¥'。目的是想把各种边界都统一成边界,其实淘口令的长度也是固定的,如果你想更严格匹配的话,可以自行增加长度限制。

匹配第一个

let str = '(sI3d1P2ZcLb)'.match(/[^0-9a-zA-Z]/);

^表示取反,这里正则的意思就是说,排除0到9的数字、a到z的字母和A到Z的字母。
这里只是匹配到一个,结果如下

["(", index: 0, input: "(sI3d1P2ZcLb)", groups: undefined]

str[0],就是匹配到(
match换成replace,就是替换操作。

let str = '(sI3d1P2ZcLb)'.replace(/[^0-9a-zA-Z]/, '¥');;

str的值如下

"¥sI3d1P2ZcLb)"

匹配全部

匹配全部的话,需要为正则增加/g修饰符。

'(sI3d1P2ZcLb)'.match(/[^0-9a-zA-Z]/g, '$');
["(", ")"]

将边界替换成’¥’

'(sI3d1P2ZcLb)'.replace(/[^0-9a-zA-Z]/g, '$');
"$sI3d1P2ZcLb$"

修饰符

js中的修饰符一共有3个,如下

修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

你可能感兴趣的:(前端开发)