你能给我一个正则表达式吗
- 只允许字母数字
- 在整个字符串中绝对只有一个连字符
- 字符串前后不允许有连字符或空格
- 不允许有连续的空格或连字符。
- hypen和一个空格可以相邻
有效-“123-Abc test1”,“test-me”,“abc slkh-hsds”
无效-“abc”、“-hsdj sdsd hjds-”
感谢您在这方面帮助我。非常感谢您的帮助
最佳答案
/^([a-zA-Z0-9] ?)+-( ?[a-zA-Z0-9])+$/
参见 demo在这里。
编辑:
如果连字符的两边不能有空格,则需要多一点:
/^([a-zA-Z0-9] ?)+-(((?<! -) )?[a-zA-Z0-9])+$/
^^^^^^^^ ^
或者,如果不支持负向后回顾断言(例如在 JavaScript 中),则等效的正则表达式:
/^([a-zA-Z0-9]( (?!- ))?)+-( ?[a-zA-Z0-9])+$/
^ ^^^^^^^ ^
关于regex - 需要一个字母数字的正则表达式,其中包含 1 个连字符和单词之间的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783463/