【发布时间】:2013-11-14 09:15:52
【问题描述】:
我想要一个正则表达式,它匹配开头没有空格的字符串。但是中间包含空格的字符串可以匹配。到目前为止,我已经尝试过以下
[^-\s][a-zA-Z0-9-_\\s]+$
Above 不允许开头有空格,但也不允许出现在字符串的中间/结尾。请帮帮我。
【问题讨论】:
标签: javascript regex
我想要一个正则表达式,它匹配开头没有空格的字符串。但是中间包含空格的字符串可以匹配。到目前为止,我已经尝试过以下
[^-\s][a-zA-Z0-9-_\\s]+$
Above 不允许开头有空格,但也不允许出现在字符串的中间/结尾。请帮帮我。
【问题讨论】:
标签: javascript regex
如果您打算匹配与您的模式匹配的任意长度的字符串(甚至是空字符串)并且不以空格开头,请在^ 之后使用(?!\s): p>
/^(?!\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-]+$/
请参阅regex demo。 JS 演示:
console.log(/^(?![\s-])[\w\s-]+$/.test("abc def 123 ___ -loc- "));
console.log(/^(?![\s-])[\w\s-]+$/.test(" abc def 123 ___ -loc- "));
【讨论】:
在开头使用 \S
^\S+[a-zA-Z0-9-_\\s]+$
【讨论】:
你需要使用这个正则表达式:
^[^-\s][\w\s-]+$
^
\s
\w 与 [a-zA-Z0-9_] 相同
【讨论】:
此 RegEx 不允许在开头或结尾处使用空格。您的字符串/单词并允许所有特殊字符。
^[^\s].+[^\s]$
这个正则表达式也很好用
^[^\s]+(\s+[^\s]+)*$
【讨论】:
试试这个应该可以的
[a-zA-Z0-9_]+.*$
【讨论】:
/^[^.\s]/
【讨论】:
在您的第二个字符类中,\\s 将匹配 \ 和 s,而不是 \s。因此它不匹配空格。你应该在那里只使用\s。另外,将连字符移到末尾,否则会在字符类中创建意外范围:
^[^-\s][a-zA-Z0-9_\s-]+$
【讨论】:
如果您的用户名字段只接受字母和中间空格,而不接受开头和结尾
用户名: /^[^\s][a-zA-Z\s]+[^\s]$/
如果您的用户 ID 字段仅接受字母、数字和下划线且不允许有空格
用户 ID: /^[\w]+$/
如果您的密码字段只接受字母、数字和特殊字符,则不允许使用空格
密码: /^[\w@#&]+$/
注意:\w内容a-zA-Z、number、下划线(_)如果添加更多字符,请在\w之后添加特殊字符。
您可以与密码字段中的用户 ID 和密码字段进行比较,我只添加一些特殊字符 (@#&)。
印度公众喜欢?
【讨论】:
【讨论】: