检查单个字符是否为空格的最佳方法是什么?
我知道如何通过正则表达式检查这一点.
但如果我只有一个角色,我不确定这是否是最好的方法.
是否有更好的方法(关于性能)来检查它是否是空格?
如果我做这样的事情.我会想念像标签这样的白色空间吗?
if (ch == ' ') {
...
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*oph 40
如果您只想测试某些空白字符,请手动执行,否则,使用正则表达式,即
/\s/.test(ch)
Run Code Online (Sandbox Code Playgroud)
请记住,不同的浏览器匹配不同的字符,例如在Firefox中,\s
相当于(源)
[ \f\n\r\t\v\u00A0\u2028\u2029]
Run Code Online (Sandbox Code Playgroud)
而在Internet Explorer中,它应该是(源)
[ \f\n\r\t\v]
Run Code Online (Sandbox Code Playgroud)
MSDN页面实际上忘记了空间;)
jak*_*ake 14
正则表达式方法是一个可靠的方法.但这就是我懒惰时忘记正确的正则表达式语法:
str.trim() === '' ? alert('just whitespace') : alert('not whitespace');
Run Code Online (Sandbox Code Playgroud)
Ale*_*ett 13
我已经引用了PHP的trim函数匹配的空白字符集而没有羞耻(减去空字节,我不知道浏览器将如何处理它).
if (' \t\n\r\v'.indexOf(ch) > -1) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这看起来像对我来说过早优化.
这包括空格,制表符和换行符:
if ((ch == ' ') || (ch == '\t') || (ch == '\n'))
Run Code Online (Sandbox Code Playgroud)
这应该是性能最好的.首先,把你期望的空白字符放在最有可能的位置.
如果表现真的很重要,可能最好考虑比这样的个别运营更大的图景......
虽然不完全正确,但我使用了这个实用且快速的解决方案:
if (ch.charCodeAt(0) <= 32) {...
Run Code Online (Sandbox Code Playgroud)