[英]Javascript regex - no white space at beginning + allow space in the middle
我想要一个正则表达式,它匹配开头没有空格的字符串。 但是中间包含空格的字符串 CAN 匹配。 到目前为止,我已经尝试过以下
[^-\s][a-zA-Z0-9-_\\s]+$
以上不允许在开头有空格,也不允许在字符串的中间/结尾。 请帮我。
在您的第二个字符类中, \\\\s
将匹配\\
和s
,而不是\\s
。 因此它不匹配空格。 你应该在那里只使用\\s
。 另外,将连字符移到最后,否则它会在字符类中创建无意的范围:
^[^-\s][a-zA-Z0-9_\s-]+$
你需要使用这个正则表达式:
^[^-\s][\w\s-]+$
^
\\s
\\w
与[a-zA-Z0-9_]
在开头使用 \\S
^\S+[a-zA-Z0-9-_\\s]+$
如果您打算以匹配符合你的格局,不会有空白,开始使用任意长度(甚至是空字符串)的字符串(?!\\s)
右后^
:
/^(?!\s)[a-zA-Z0-9_\s-]*$/
^^^^^^
或者,请记住 JS 正则表达式中的[A-Za-z0-9_]
等于\\w
:
/^(?!\s)[\w\s-]*$/
(?!\\s)
是一个否定前瞻,它匹配字符串中没有紧跟空格(与\\s
模式匹配)的位置。
如果您想在字符串开头添加更多“禁止”字符(看起来您也不允许-
),请继续在前瞻中使用[\\s-]
字符类:
/^(?![\s-])[\w\s-]*$/
要匹配至少 1 个字符,请将*
替换为+
:
/^(?![\s-])[\w\s-]+$/
请参阅正则表达式演示。 JS演示:
console.log(/^(?![\\s-])[\\w\\s-]+$/.test("abc def 123 ___ -loc- ")); console.log(/^(?![\\s-])[\\w\\s-]+$/.test(" abc def 123 ___ -loc- "));
这个 RegEx 不允许在开头和结尾有空格。 您的字符串/单词并允许所有特殊字符。
^[^\s].+[^\s]$
这个正则表达式也很好用
^[^\s]+(\s+[^\s]+)*$
试试这应该工作
[a-zA-Z0-9_]+.*$
/^[^.\\s]/
如果您的用户名字段只接受字母和空格中间而不接受开头和结尾
用户名: /^[^\\s][a-zA-Z\\s]+[^\\s]$/
如果您的用户 ID 字段仅接受字母、数字和下划线且不允许有空格
用户名: /^[\\w]+$/
如果您的密码字段只接受字母、数字和特殊字符,则不允许使用空格
密码: /^[\\w@#&]+$/
注意: \\w
内容a-zA-Z
, number
,下划线( _
)如果添加更多字符,请在\\w
之后添加特殊字符。
您可以与密码字段中的用户 ID 和密码字段进行比较,我只添加一些特殊字符( @#&
)。
印度公众 thoko 喜欢 😁
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.