"/(?=.{1,32}$)^[a-zA-Z0-9]([a-zA-Z0-9_\\-.:]*)[a-zA-Z0-9]$/"
我有上面的正则表达式,它只接受一些特殊字符,并确保字符串不应该以特殊符号开头或结尾
当前接受的字符串:
- abcd
- abcd-gffgfg
- abcdeer-errt.ertert-rtr
- abcd-._:fgdfgfg(不允许)
当前拒绝的字符串:
- abcd-
- abcd$fgfg
- -&abcd
- -abcd
我想修改上面的表达式,使其在任意两个单词之间只接受一个特殊字符,并且只允许一些特殊符号 (._ - :)
建议我如何修改上述正则表达式。
最佳答案
尝试:
const regex = /(?=.{1,32}$)^(([a-zA-Z0-9])+[_\-.:])*([a-zA-Z0-9])+$/
const strs = [
"abcd-abcd",
"abcd_fdfg-dfgdg.fgd:dfgdfg",
"abcd",
"abcd-._:abcd",
"abcd:dfgdfg:_:"
]
console.log(strs.map(str => regex.test(str)))
正则表达式基本上表示:(wordchars + 1 个特殊字符)重复 0 次或多次,后跟 wordchars。
关于javascript - 用于验证字符串的正则表达式,确保单词仅由一个特殊符号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422104/