为什么这个JavaScript代码在Firefox中无效?

时间:2010-09-18 18:11:02

标签: javascript string

我意外地输入了\ s而不是“”,

while(cname.charAt(cname.length-1) == "\s")

在所有字符串文字中是否都没有解析特殊字符?

另外,什么是正确的正则表达式来切断EOL的所有标签和空格? my /(.*)[\s\t]/选择器不起作用!所以我不得不回到while(if.. substr)

2 个答案:

答案 0 :(得分:4)

\s只是正则表达式中空格,制表符和换行符的字符类。在这种情况下,“\ s”变成了“s”。

使用以下方法从EOL中删除标签和空格

cname = cname.replace(/\s+$/mg, '');
  • \s+匹配一个或多个空格或标签
  • $匹配主题的结尾
  • m标记会导致$与行尾相匹配,而不是字符串。
  • g标志会导致所有匹配被替换。

答案 1 :(得分:2)

\s是正则表达式中的合法语法,但它不是字符串中的合法语法。

这很好:

/\s/

这是非法的:

"\s"