正则表达式仅匹配空格 - JavaScript

6

我需要过滤一个仅包含空格的字段,类似于:

if (word == /((\s)+)/ ) return 'no name'

但它不起作用...还有其他的想法吗?谢谢你的建议!

4个回答

14
你应该使用 if(/^\s+$/.test(word))。(注意 ^$,没有它们,正则表达式适用于任何至少包含一个空格字符的字符串)。

谢谢Gabi,这是正确的方法。但是我想测试所有带有至少一个空格的单词,并且我想过滤只包含空格的字符串。 - Marco
罗布,你太快了,我没看到你的评论。你的建议对我来说是正确的——它很好地起作用了。谢谢大家! - Marco
你们太快了,我从来没有机会回答我真正知道答案的问题 :P - Aelfhere
4
注意:此处不包括多行字符串。 - Justin Wood

0

您也可以使用!word.trim()进行相同的检查,完全忽略正则表达式。


0

只需使用空格字符space代替\s即可。

'   '.match(/ +/)
''.match(/ +/)

输出

["   ", index: 0, input: "   ", groups: undefined]'
null

-2
怎么样使用正则表达式来检查“单词”,而是使用正则表达式替换所有空格,看看剩下什么。如果为空,则“单词”仅由空格组成。
   if (word.replace(/\s+/, "") === "") {
      console && console.log("empty string found!");
      return 'no name';
   }

2
那段代码与 OP 的略有不同:你的允许空字符串;OP 和另一个答案则不允许。此外,console & ... 没有意义,而 word 周围的括号是多余的。 - melpomene
我认为他想要找到仅由空格组成的字段,所以我编写了一个检查来查找它。您在语句内部对结果做什么,或者如果您想将语句切换为!==,并且即使仅用于测试或开发,您将其写入控制台 - 这真的很重要吗?当然,括号是多余的,但这也不会以任何方式损害解决方案本身,不是吗? - René Baudisch
但是,你正在使用正则表达式! - Toto
好的,没错,这个文本有误,我会更改,谢谢! - René Baudisch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接