我尝试过使用^ [a-zA-Z0-9`。] * $。但它允许更多的空间。任何人都可以解释什么是"关闭"在这种背景下?任何帮助表示赞赏。
答案 0 :(得分:3)
试试这个:
/^[a-z0-9\-\.`]+\s{0,1}[a-z0-9\-\.`]+$/gmi
解释
^[a-z0-9\-\.\`]+ # starts with at least one letter/number/-/./`
\s{0,1} # must or not contain one space - same as: '\s?'
[a-z0-9\-\.\`]+$ # ends with at least one letter/number/-/./`
答案 1 :(得分:1)
你的大括号里面有一个空格,并且在胡萝卜之后也是正则表达式的开头。所以你需要在文本的开头和结尾排除空格:
/^([a-z0-9\-]+\s{0,1}[a-z0-9\-]+)+$/gmi
你还希望通过转义并包含它来包含' - '字符。
一个测试正则表达式的好网站
答案 2 :(得分:1)
这个应该做得很好:
/*#!(?#!js valid Rev:20150715_1300)
# Validate alphabets numbers `-. and only one space.
^ # Anchor to start of string.
(?=[^ ]+(?:[ ][^ ]+)*$) # Only one space between words.
[a-zA-Z0-9 `.-]* # One or more allowed chars.
$ # Anchor to end of string.
!#*/
var valid = /^(?=[^ ]+(?: [^ ]+)*$)[a-zA-Z0-9 `.-]*$/;
答案 3 :(得分:0)
我从你的问题中解释的内容看起来像这样。
^([a-zA-Z0-9`.]+ ?)*[a-zA-Z0-9`.]+$
这意味着对于字符串中的每个空格,必须有一系列您建议的字符,并且它必须以至少一个字符结尾。