检查字符串是否只包含空格的最佳方法是什么?
允许该字符串包含带有空格的组合字符,但不包含 空格。
答案 0 :(得分:269)
不是检查整个字符串以查看是否只有空格,而是检查非空格中是否至少有一个字符:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
答案 1 :(得分:30)
if (/^\s+$/.test(myString))
{
//string contains only whitespace
}
检查一个或多个空格字符,如果它也匹配空字符串,则将+
替换为*
。
答案 2 :(得分:22)
如果您的浏览器支持trim()
功能
if (myString && !myString.trim()) {
//First condition to check if string is not empty
//Second condition checks if string contains just whitespace
}
答案 3 :(得分:17)
好吧,如果您使用的是jQuery,那就更简单了。
if ($.trim(val).length === 0){
// string is invalid
}
答案 4 :(得分:6)
只需检查此正则表达式的字符串:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
答案 5 :(得分:1)
if (!myString.replace(/^\s+|\s+$/g,""))
alert('string is only whitespace');
答案 6 :(得分:0)
当我想在字符串中间允许空格时,我最终使用的正则表达式,但不是在开头或结尾处是这样的:
[\S]+(\s[\S]+)*
或
^[\S]+(\s[\S]+)*$
所以,我知道这是一个老问题,但你可以这样做:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
或者您可以执行nickf所说和使用的内容:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
答案 7 :(得分:0)
我使用以下方法来检测字符串是否仅包含空格。它还匹配空字符串。
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
答案 8 :(得分:0)
这可能是快速的解决方法
return input < "\u0020" + 1;