Javascript if语句中未识别ASCII字符

Javascript if语句中未识别ASCII字符,javascript,jquery,html,xhtml,Javascript,Jquery,Html,Xhtml,我正在尝试使用jquery从html页面获取字符串,这就是我所拥有的 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);而不是t

我正在尝试使用jquery从html页面获取字符串,这就是我所拥有的

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语句没有被捕获。=我不知道为什么。任何帮助都会非常棒!谢谢

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

var myvar = " home"
myVar.trim() // --> "home"

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

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

var first = text.substring(0, 1);
if(first === ' ' || first === '\u00A0') {
   text = text.substring(1, text.length);
}
符号
\u00A0
是不间断空格U+00A0的JavaScript转义符号


如果希望在开始时删除多个空格,或者在结束时也删除多个空格,则需要进行一些修改。在这种情况下,使用正则表达式的替换操作可能是最好的是六个字符,因此它们永远不会匹配。HTML实体不会在JS代码中转换。您需要与实际的unicode字符或适当的JavaScript转义序列进行比较,但我不明白如何做到这一点。我尝试将代码更改为JS中的转义序列,因此我将key==' '更改为key=='\u0020',但仍然不起作用。如果这是您的意思。请使用:
键==“\u00A0”
使用它类型匹配的
==
<代码>=可能会导致原语出现隐藏问题。@Sukima:如果类型匹配,则
=
==
之间没有区别。我以前尝试过,但出于某种原因它没有删除它。编辑------------------------------------------天哪,我现在觉得自己很愚蠢。我一直把饰件放在错误的位置。我以前试过这个,但放在第一个之后(不要问为什么这个函数还有更多),但它确实有效lol。。。对不起,伙计们。但是谢谢你的帮助!是的,但我做了myVar=myVar.trim();但我觉得自己很愚蠢。我编辑了我的最后一篇文章:P。你们真是太棒了!谢谢:)我不是w3schools的粉丝,但是这种仅仅因为链接到w3schools的否决票必须停止。这完全是愚蠢的行为。为了完整性:(PS:我没有否决)除了引用一个非常不可靠的网站,这个答案使用
trim
进行简单的操作,可以通过简单的跨浏览器方式执行(
trim
不受旧版本IE的支持)它会删除开头和结尾的所有空白。该问题要求在开始时删除一个空格或一个不间断空格的代码。