if语句中无法识别ASCII字符



我正试图从一个html页面与jquery的字符串,这就是我所拥有的。

var text = $(this).text();
var key = text.substring(0,1);
if(key == ' ' || key == ' ')
    key = text.substring(1,2);

text is this  Home

我想跳过空格和或上面的键码,这段代码似乎也不起作用。它只获取text.substring(0,1);而不是text.substring(1,2);因为if语句没有捕捉到。我不知道为什么。任何帮助都是超级棒的!谢谢!

问题中的代码有几个问题。首先, 在JavaScript中没有特殊含义:它是一个包含6个字符的字符串。其次,text.substring(1,2)只返回text的第二个字符,而不是从第二个字符开始的所有字符。

假设您希望删除一个前导空格或NO-BREAK空格(这是 在HTML中的意思;顺便说一下,它不是Ascii字符),那么下面的代码就可以工作了:

var first = text.substring(0, 1);
if(first === ' ' || first === 'u00A0') {
   text = text.substring(1, text.length);
}

符号u00A0是NO-BREAK SPACE U+00A0的JavaScript转义符号。

如果您希望删除开头和结尾的多个空格,则需要进行一些修改。在这种情况下,使用正则表达式的替换操作可能是最好的。

如果要删除字符串开头(和结尾)的空格,可以使用trim函数

var myvar = " home"
myVar.trim() // --> "home"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

最新更新