正则表达式,检测字符串中没有空格

Posted

技术标签:

【中文标题】正则表达式,检测字符串中没有空格【英文标题】:Regex, detect no spaces in the string 【发布时间】:2017-10-01 12:28:55 【问题描述】:

这是我当前的正则表达式检查:

const validPassword = (password) => password.match(/^(?=.*\d)(?=.\S)(?=.*[a-zA-Z]).6,$/);

我有一张至少 1 个字母和 1 个数字以及至少 6 个字符长的支票。但是我也想确保字符串中的任何地方都没有空格。

到目前为止,我可以输入 6 个包含空格的字符串 :(

在这里找到了这个答案,但由于某种原因在我的代码中它通过了。

What is the regular expression for matching that contains no white space in between text?

【问题讨论】:

【参考方案1】:

看来你需要

/^(?=.*\d)(?=.*[a-zA-Z])\S6,$/

详情

^ - 字符串开头 (?=.*\d) - 1 位数(至少) (?=.*[a-zA-Z]) - 至少 1 个字母 \S6, - 6 个或更多非空白字符 $ - 字符串锚点结束

考虑到principle of contrast,您可以将模式修改为

/^(?=\D*\d)(?=[^a-zA-Z]*[a-zA-Z])\S6,$/

【讨论】:

这是一个很好的解释。 谢谢! Geez Regex 总是让我头疼,几乎没有遇到我必须使用它的情况。

以上是关于正则表达式,检测字符串中没有空格的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:如何检测空格和单引号? [关闭]

正则表达式检查字符串是不是只有空格

利用正则表达式检测给定的字符是否是回文

空字符串或空格的正则表达式

Oracle中如何用正则表达式检测某个字段是不是带有日文字符

PCI 合规性正则表达式检测带空格的模式