Javascript正则表达式 - 开头没有空格+允许中间空格

时间:2013-11-14 09:15:52

标签: javascript regex

我想有一个正则表达式,它与字符串匹配,一开始没有空格。但是包含中间空格的字符串可以匹配。到目前为止,我已尝试过以下

[^-\s][a-zA-Z0-9-_\\s]+$

Regular expression visualization

Debuggex Demo

上面不允许在开头有空格,但也不允许在字符串的中间/末尾。请帮帮我。

8 个答案:

答案 0 :(得分:12)

在第二个角色课程中,\\s将匹配\s,而不是\s。因此它与空白不匹配。你应该只使用\s。另外,将连字符移到末尾,否则会在字符类中创建无意识的范围:

^[^-\s][a-zA-Z0-9_\s-]+$

答案 1 :(得分:6)

您需要使用此正则表达式:

^[^-\s][\w\s-]+$
  • 使用开始锚^
  • 无需双重逃避\s
  • 同样重要的是使用连字符作为字符类中的第一个OR最后一个字符。
  • \w[a-zA-Z0-9_]
  • 相同

答案 2 :(得分:2)

在开头使用\ S

^\S+[a-zA-Z0-9-_\\s]+$

答案 3 :(得分:1)

/ ^ [^。\ s] /

  • 尝试此操作,它将不允许用户首先输入字符
  • ^与字符串的第一个字符之前的位置匹配
  • 。匹配一个字符。除换行符外,它是什么字符都没关系
  • \ s是空格

答案 4 :(得分:0)

尝试这应该工作

[a-zA-Z0-9_]+.*$

答案 5 :(得分:0)

此RegEx不允许在开头或结尾都留空格。您的字符串/单词,并允许所有特殊字符。

^[^\s].+[^\s]$

此正则表达式也可以正常工作

^[^\s]+(\s+[^\s]+)*$

答案 6 :(得分:0)

如果您的用户名字段仅接受字母和空格中间,但不接受开头和结尾

用户名: /^[^\s][a-zA-Z\s]+[^\s]$/

如果您的用户ID字段仅接受字母,数字和下划线,并且不允许使用空格

用户ID: /^[\w]+$/

如果您的密码字段仅接受字母,数字和特殊字符,不允许使用空格

密码: /^[\w@#&]+$/

注意:\w内容a-zA-Znumber,下划线(_)下如果要添加更多字符,请在\w之后添加特殊字符。

您可以在密码字段中与用户ID和密码字段进行比较,仅添加一些特殊字符(@#&)。

像th那样的印度公众thoko

答案 7 :(得分:0)

我建议使用下面的正则表达式,

^[^\s].*[^\s]$

您可以在 here

中尝试正则表达式