【发布时间】:2017-10-10 10:11:36
【问题描述】:
我正在寻找满足以下条件的正则表达式
- 最少 1 个字符和最多 50 个字符
- 字符串的开头和结尾没有空格
- 只允许一个空格,两个单词之间的点。
我正在使用以下表达式,这会导致灾难性的回溯问题。 表达式 -
/^[a-zA-Z]+(?:(?:|['_\. ])([a-zA-Z]*(\.\s)?[a-zA-Z])+)*$/
我怎样才能避免这个问题?
【问题讨论】:
-
我更新了我的问题,下划线将出现在模式中
-
最好有一组测试字符串。试试regex101.com/r/TmJTBD/3
-
/^(?=.{1,50}$)[a-z]+(?:['_.\s][a-z]+)*$/i.这对我有用。非常感谢。
标签: javascript regex formvalidation.io