包含一个空格的字符串长度始终等于1:
alert('My str length: ' + str.length);
空格是一个字符,因此:
str = " ";
alert('My str length:' + str.length); // My str length: 3
如何区分空字符串和仅包含空格的字符串?如何检测仅包含空格的字符串?
包含一个空格的字符串长度始终等于1:
alert('My str length: ' + str.length);
空格是一个字符,因此:
str = " ";
alert('My str length:' + str.length); // My str length: 3
如何区分空字符串和仅包含空格的字符串?如何检测仅包含空格的字符串?
0?或使用正则表达式仅匹配空格字符串...
Answers:
为此,您可以使用正则表达式删除字符串中的所有空格。如果结果字符串的长度为0,则可以确保原始字符串仅包含空格。尝试这个:
var str = " ";
if (!str.replace(/\s/g, '').length) {
console.log('string only contains whitespace (ie. spaces, tabs or line breaks)');
}
if(!str.trim()){
console.log('string is empty or only contains spaces');
}
可以使用从字符串中删除空格String#trim()。
要检查字符串是否为null或未定义,可以检查字符串本身是否为false,在这种情况下为null,未定义或为空字符串。第一次检查是必要的,因为尝试在上调用方法null或undefined将导致错误。要检查它是否仅包含空格,可以在修剪后检查字符串是否为假,这意味着它在那时是空字符串。
if(!str || !str.trim()){
//str is null, undefined, or contains only spaces
}
可以使用可选的链接运算符简化此过程。
if(!str?.trim()){
//str is null, undefined, or contains only spaces
}
如果确定变量将是字符串,则仅需要第二次检查。
if(!str.trim()){
console.log("str is empty or contains only spaces");
}
您可以通过为字符串创建修剪函数来修剪字符串值。
String.prototype.trim = function () {
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
现在它将对您的每个String可用,您可以将其用作
str.trim().length// Result will be 0
您也可以使用此方法删除String开头和结尾处的空格,即
" hello ".trim(); // Result will be "hello"