"/(?=.{1,32}$)^[a-zA-Z0-9]([a-zA-Z0-9_\\-.:]*)[a-zA-Z0-9]$/"
我有上面的正则表达式,它只接受一些特殊字符,并确保字符串不应以特殊符号开头或结尾
当前接受的字符串:
A B C D
abcd-gffgfg
abcdeer-errt.ertert-rtr
abcd -._:fgdfgfg(不应允许)
当前被拒绝的字符串:
A B C D-
abcd $ fgfg
-&A B C D
-A B C D
我想修改上面的表达式以在任何两个单词之间仅接受一个特殊字符,并只允许几个特殊符号(。_-:)
建议我如何修改上述正则表达式。
最佳答案
尝试:
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/