Javascript 如何检查字符串是否包含字符&;空白,不仅仅是空白?

Javascript 如何检查字符串是否包含字符&;空白,不仅仅是空白?,javascript,string,whitespace,Javascript,String,Whitespace,检查字符串是否只包含空格的最佳方法是什么 允许字符串包含与空格组合的字符,但不能仅包含空格。只需根据此正则表达式检查字符串: if(mystring.match(/^\s+$/) === null) { alert("String is good"); } else { alert("String contains only whitespace"); } 这将检查是否有1个或多个空白字符,如果您希望它也与空字符串匹配,则将+替换为*,而不是检查整个字符串是否只有空白,只需检查

检查字符串是否只包含空格的最佳方法是什么


允许字符串包含与空格组合的字符,但不能仅包含空格。

只需根据此正则表达式检查字符串:

if(mystring.match(/^\s+$/) === null) {
    alert("String is good");
} else {
    alert("String contains only whitespace");
}

这将检查是否有1个或多个空白字符,如果您希望它也与空字符串匹配,则将
+
替换为
*

,而不是检查整个字符串是否只有空白,只需检查是否至少有一个非空白字符:

if (!myString.replace(/^\s+|\s+$/g,""))
  alert('string is only whitespace');
if (/\S/.test(myString)) {
    // string is not empty and not just whitespace
}

< P>正则表达式,当我希望在字符串的中间允许空格,而不是在开始或结束时,使用的是:

[\S]+(\s[\S]+)*

我知道这是一个老问题,但你可以这样做:

if (/^\s+$/.test(myString)) {
    //string contains characters and white spaces
}
或者你可以做你所说的并使用:

if (/\S/.test(myString)) {
    // string is not empty and not just whitespace
}

如果您使用的是jQuery,那么就更简单了

if ($.trim(val).length === 0){
   // string is invalid
} 

如果您的浏览器支持
trim()
功能,最简单的答案

if (myString && !myString.trim()) {
    //First condition to check if string is not empty
    //Second condition checks if string contains just whitespace
}

我使用了以下方法来检测字符串是否只包含空格。它还匹配空字符串

if (/^\s*$/.test(myStr)) {
  // the string contains only whitespace
}

这可能是一个快速的解决方案

return input < "\u0020" + 1;
返回输入<“\u0020”+1;

我阅读问题的方式是,只要字符串不是/only/whitespace,就允许使用/any/whitespace。如果字符串是空的,它对该做什么没有提示,因此可能nickf的答案更好。只是小心myString为空值。它将返回true://\S/.test(null)==true许多答案中都包含正则表达式!这是否意味着在js中没有本机的检测方法?没有字符串。是空白还是什么?也没有本机trim吗?@JonnyLeeds因为regex甚至在js中有语法支持,可以说它实际上比任何附带的实用程序方法都更本机;)同样适用于换行符和制表符,而上面的正则表达式示例则不适用,因为它们只寻找除了空白之外没有任何东西的情况。尽管如此,我相信有一些具备正则表达式知识的人可以创建一个正则表达式,该正则表达式在搜索中也会包含制表符/换行符。当val被分配了空格(在我的例子中是四个空格)时不起作用。现在当IE 8是RIP时,这是依赖本机实现的最干净、最高效的解决方案性能。它可以正确地处理制表符和新行这只是按字母顺序进行比较。只要输入排序低于“1”,它将返回true。示例:
返回“asdfv34562345”<“\u0020”+1计算结果为true。
if (/^\s*$/.test(myStr)) {
  // the string contains only whitespace
}
return input < "\u0020" + 1;