Board logo

标题: [原创代码] JavaScript 替换空白字符在各浏览器中较通用的代码 [打印本页]

作者: neorobin    时间: 2012-10-29 17:42     标题: JavaScript 替换空白字符在各浏览器中较通用的代码

本帖最后由 neorobin 于 2012-10-30 15:16 编辑

要移除 字符串 中的所有空白字符, 似乎可以用下面简单的 代码1 实现
  1. str.replace(/\s+/g, "");
复制代码
但由于各种浏览器 对 ECMA 标准的遵守不一定尽于人意, 以上代码在某些浏览器中可能会出现不能成功移除掉所有不需要的空白字符.
比如 IE 8 对 \s 的解释就只有如下这些字符:
U+0009
U+000a
U+000b
U+000c
U+000d
U+0020
而   被浏览器解释成 U+00A0 时, 就无法被 代码1 移除掉.

以下给出可能更通用的代码:
当仅仅要增加处理 U+00a0 字符时
  1. str.replace(/[\s\u00a0]+/g, "");
复制代码
  1. var white_sps = String.fromCharCode(9,10,11,12,13,32,160,5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8232,8233,8287,12288,65279);
  2. var re = new RegExp("[" + white_sps + "]+", "g");
  3. str = str.replace(re, "");
复制代码
参考:
http://blog.stevenlevithan.com/a ... t-regex-and-unicode




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2