代码之家  ›  专栏  ›  技术社区  ›  kagali-san

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

  •  1
  • kagali-san  · 技术社区  · 15 年前

    我不小心输入了\s而不是“”,

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

    另外,什么是一个适当的正则表达式,以切断所有制表符和空间从EOL? 这个 my /(.*)[\s\t]/ 选择器就是不起作用!所以我不得不退而求其次 while(if.. substr) .

    2 回复  |  直到 15 年前
        1
  •  4
  •   Lekensteyn    15 年前

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

    从EOL中删除制表符和空格:

    cname = cname.replace(/\s+$/mg, '');
    
    • \s+ 匹配一个或多个空格或制表符
    • $ 匹配主题的结尾
    • m $
    • 这个 g 标志导致替换所有匹配项。
        2
  •  2
  •   yfeldblum    15 年前

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

    这很好:

    /\s/
    

    这是非法的:

    "\s"