检测字符串是否包含任何空格

Mal*_*001 25 javascript regex

如何检测字符串是否包含空格字符?

以下仅检测实际空格字符.我需要检查任何类型的空白.

if(str.indexOf(' ') >= 0){
    console.log("contains spaces");
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 71

你所拥有的将在字符串中的任何地方找到一个空格,而不仅仅是在单词之间.

如果要查找任何类型的空格,可以使用此方法,它使用正则表达式:

if (/\s/.test(str)) {
    // It has any kind of whitespace
}
Run Code Online (Sandbox Code Playgroud)

\s 表示"任何空格字符"(空格,制表符,垂直制表符,换页符,换行符等),并且会在字符串中的任何位置找到该字符.

根据MDN,\s相当于:[ \f\n\r\t\v?\u00a0\u1680?\u180e\u2000?\u2001\u2002?\u2003\u2004?\u2005\u2006?\u2007\u2008?\u2009\u200a?\u2028\u2029??\u202f\u205f?\u3000].


出于某种原因,我最初将您的问题读作"如何查看字符串是否包含空格?" 所以我回答了下面的问题.但正如@CrazyTrain指出的那样,这不是问题所在.不过,我会离开它,以防万一......

如果你的意思是字面上的空格,正则表达式可以做到:

if (/^ *$/.test(str)) {
    // It has only spaces, or is empty
}
Run Code Online (Sandbox Code Playgroud)

这就是说:匹配字符串(^)的开头,后跟零个或多个空格字符,后跟字符串结尾($).如果您不想匹配空字符串,请将其更改*为a +.

如果你的意思是将空格作为一般概念:

if (/^\s*$/.test(str)) {
    // It has only whitespace
}
Run Code Online (Sandbox Code Playgroud)

它使用\s(空白)而不是空格,但在其他方面是相同的.(再次,改变*+如果你不想匹配一个空字符串).

  • @ abhishah901:[MDN是您的朋友](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test)(在上面链接)。或者,您可以拿起您的野生动物园帽子和砍刀,并深入研究[规格](http://www.ecma-international.org/ecma-262/6.0/index.html#sec-regexp.prototype.test),但这是那里是一个丛林,但这是其中更温和的部分之一。 (2认同)