JavaScript去掉字符串空白字符

2022-01-17 21:53:32 浏览数 (1)

一、空白字符

这里的空白字符是所有的空白字符(space、tab、no-break space等)以及所有行终止字符(如LF、CR).

1. whitespace characters

In computer programming, white space is any character or series of characters that represent horizontal or vertical space in typegraphy.

在计算机程序中,空白字符指在排版中表现水平或者垂直空白的任何字符或一系列字符。

When rendered, a whitespace character does not correspond to a visible mark, but typically does occupy an area on a page.

当呈现时,空白字符并不对应于可见的标记,但通常在页面上占据一个区域。

For example, the common whitespace symbol U 0020 SPACE(HTML ), also ASCII32, represents a blank space punctuation character in text, used as a word divider in Western scripts.

例如:常见的空白符号U 0020空格,也就是ASCII32, 表示文本中空白的标点符号,在西方脚本中用作单词分隔符。

2. Line terminator

Newline, a special character or sequence of characters signifying the end of a line of text Electrical termination, at the end of a wire or cable to prevent an RF signal from being reflected

二、代码实现

String.prototype.trim()

浏览器兼容脚本

代码语言:javascript复制
if (!String.prototype.trim) {
String.prototype.trim = function () {
 return this.replace(
    /^[suFEFFxA0] |[suFEFFxA0] $/g, 
     '');  
 };
}

3. jQuery源码分析

三、正则分析

1. uFEFF

uFEFF(Unicode编码),它是ES5新增的空白符,叫“字节次序标记字符(Byte Order Mark)”,也就是BOM;

Unicode3.2之前,uFEFF表示“零宽不换行空格(Zero Width No-Break Space)”;Unicode3.2新增了u2060用来表示零宽不换行空格,uFEFF就只用来表示“字节次序标记字符”。

String.prototype.trim是ES5增加的方法,对于老旧浏览器,还得使用自己实现的trim。至少在低版本的 IE 浏览器下,jQuery1.7.2 是无法过滤字符串两段的BOM字符。

2. xA0

The Cambredge Z88 provided a special “exact space” (codepoint 160 aka 0xA0)(invokable by key shortcut

)

0 人点赞