我有一个正则表达式^(?=.*?[A-Za-z])\S*$
,表示输入应包含字母表,并且可以包含特殊字符或数字以及字母表。但由于我使用了\ S,因此不允许使用空格。
有人可以建议我一个reg exp,它应该包含字母,它可以包含数字或特殊字符和空格,但字母是必须的,最后一个字符不应该以空格结尾
答案 0 :(得分:4)
很简单:
^(?=.*?[A-Za-z]).*$
请注意,在JavaScript中.
与新行不匹配,并且没有全点标记(/s
)。如果这是一个问题,您可以使用类似[\s\S]
的内容:
^(?=[\s\S]*?[A-Za-z])[\s\S]*$
由于您只有一个前瞻,您可以将模式简化为:
^.*[A-Za-z].*$
或者,甚至更简单:
[A-Za-z]
[A-Za-z]
如果在字符串中的任何位置找到一个字母,则匹配,您不需要从头到尾搜索其余字母。
为了验证最后一个字符不是空格,再次使用前瞻可能最容易(因为它在正则表达式中基本上是AND
:
^(?=.*?[A-Za-z]).*\S$