如何检测仅包含空格的字符串?

2022-08-30 05:08:42

包含一个空格的字符串长度始终等于 1:

alert('My str length: ' + str.length);

空格是一个字符,因此:

str = "   ";
alert('My str length:' + str.length); // My str length: 3

如何区分空字符串和仅包含空格的字符串?如何检测仅包含空格的字符串?


答案 1

为此,您可以使用正则表达式删除字符串中的所有空格。如果结果字符串的长度为 ,则可以确定原始字符串仅包含空格。试试这个:0

var str = "    ";
if (!str.replace(/\s/g, '').length) {
  console.log('string only contains whitespace (ie. spaces, tabs or line breaks)');
}

答案 2

最快的解决方案是使用正则表达式原型函数 test() 并查找任何不是空格、制表符或换行符的字符:\S

if (!/\S/.test(str)) {
  // Didn't find something other than a space which means it's empty
}

如果您有一个超长的字符串,它可能会产生重大影响,因为它会在找到非空格字符后立即停止处理。