代码之家  ›  专栏  ›  技术社区  ›  Roger

trim方法的jquery核心提交代码

  •  3
  • Roger  · 技术社区  · 16 年前

    有人能帮我理解吗 this commit

    什么是\u00a0?

    4 回复  |  直到 16 年前
        1
  •  9
  •   meder omuraliev    16 年前

    除了不间断空格外,代码条带尾随空格和前导空格字符, \u00A0 是非中断空格的Unicode点/代码/编号/别名。你可以弹出Firebug并把它打印出来。

    >>> '\u00A0'
    " "
    

    有关此字符的详细信息:

    http://www.fileformat.info/info/unicode/char/00a0/index.htm

    编辑:我刚在Firebug中尝试过这个代码,它检查生成的非中断空间中是否有匹配项,并且匹配:

    javascript:alert( String.fromCharCode(160).match(/\s/) )
    

    但是,在IE6中执行此操作后,它将返回 null ,所以IE很可能是这次更新的原因。

    更新2-看起来删除插入符号使其与以前的版本不一致,因为它不仅删除前导空格和尾随空格,而且删除任何地方的空格。

    r = /(\s|\u00A0)+|(\s|\u00A0)+$/g;
    
    s = '  wh  at'
    
    s = s.replace( r, '' )
    

    输出

    "what"
    
        2
  •  1
  •   developmentalinsanity    16 年前

    我想这和 String.fromCharCode(160) 从测试用例-一个不间断的空间。它确保修剪也会修剪不间断的空格字符,这些字符通常与 \s 字符类。

        3
  •  1
  •   Annabelle    16 年前

    它是Unicode中非中断空格字符的代码点。提交似乎解决了Internet Explorer的JavaScript实现中的一个错误,其中 \s 正则表达式字符类不包括 \u00a0 .

        4
  •  0
  •   Stefan Kendall    16 年前

    看起来像一个Unicode空格字符,它不等于\u0020。