我正在使用regexp,如果用户输入连续空格,破折号,撇号,那么我必须显示一条错误消息
^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{0,}$
使用上面的reg exp我得到如果用户输入一个破折号我收到错误但在这里我想要空格撇号。
我在这里挣扎,请帮助我
提前致谢
答案 0 :(得分:1)
如果我理解正确,基本上你必须进行反向引用以检查双字(或多于双数)
/(\s-,)\1+/.test(...)
const hasDoubles = new RegExp(/(\s|-|,)\1+/);
console.log( hasDoubles.test("hello - ") ) // false
console.log( hasDoubles.test("--") ) // true
console.log( hasDoubles.test(" ") ) // true
console.log( hasDoubles.test(",,") ) // true
此代码捕获任何空格\s
或短划线-
或,
,然后检查它是否再次出现\1+
\1
表示的一次或多次反向引用捕获组,+
发生一次或多次发生。