如何检查javascript中只有空格的字符串

Shr*_*wat 5 javascript

在我的代码中,我需要写一个if else块 -

when the variable `currentValue` is holding only spaces -> certain code
Run Code Online (Sandbox Code Playgroud)

但我不知道如何写这个条件,因为currentValue可以是任何大小的字符串.它可以容纳" "," " 等等.如果我写currentValue!=" "它会检查单空间.

jAn*_*ndy 16

可能看起来像

if( !currentValue.trim().length ) {
    // only white-spaces
}
Run Code Online (Sandbox Code Playgroud)

文档: trim

即使它非常不言自明; gets trimmed引用的字符串,这基本上意味着开头和结尾的所有空格字符都将被删除.如果整个字符串由空格字符组成,则它会被完全清除,这反过来意味着结果将是和将来的.currentValuelength0!0true

关于性能,我将此解决方案与来自@mishik 的RegExp方法进行了比较.事实证明,.trim()FireFox的速度要快得多,而RegExpChrome的速度似乎更快.

http://jsperf.com/regexp-vs-trim-performance


mis*_*hik 8

只是:

if (/^\s*$/.test(your_string)) {
  // Only spaces
}
Run Code Online (Sandbox Code Playgroud)

space仅匹配:

if (/^ *$/.test(your_string)) {
  // Only spaces
}
Run Code Online (Sandbox Code Playgroud)

说明:/^\s*$/- 匹配字符串的开头,然后匹配任意数量的空格(空格,换行符,制表符等),然后匹配字符串的结尾./^ *$/ - 同样,但仅限于空间.

如果你不想匹配空字符串:更换*+,以确保至少一个字符是存在的.