为什么使用 JavaScript 中 string 的 trim 方法时要替换 \uFEFF ...
2个回答
2016-05-04 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
\uFEFF(Unicode 编码:U+FEFF )。它是 ES5 新增的空白符,叫「字节次序标记字符(Byte Order Mark)」,也就是 BOM;
Unicode3.2 之前,\uFEFF 表示「零宽不换行空格(Zero Width No-Break Space)」;
Unicode3.2 新增了 \u2060 用来表示零宽不换行空格, \uFEFF 就只用来表示「字节次序标记字符(Byte Order Mark)」;
String.prototype.trim 是 ES5 增加的方法,对于老旧浏览器,还得使用自己实现的 trim;
至少在 低版本的 IE浏览器下 ,jQuery 1.7.2 是无法过滤字符串两端的 BOM 字符。
考虑到某些浏览器实现的 trim 不过滤 <NBSP> 或 <BOM>,
于是 jQuery 多加了一层检测,jQuery 1.8.1 在之前版本的基础上就添加了对BOM的过滤
Unicode3.2 之前,\uFEFF 表示「零宽不换行空格(Zero Width No-Break Space)」;
Unicode3.2 新增了 \u2060 用来表示零宽不换行空格, \uFEFF 就只用来表示「字节次序标记字符(Byte Order Mark)」;
String.prototype.trim 是 ES5 增加的方法,对于老旧浏览器,还得使用自己实现的 trim;
至少在 低版本的 IE浏览器下 ,jQuery 1.7.2 是无法过滤字符串两端的 BOM 字符。
考虑到某些浏览器实现的 trim 不过滤 <NBSP> 或 <BOM>,
于是 jQuery 多加了一层检测,jQuery 1.8.1 在之前版本的基础上就添加了对BOM的过滤
展开全部
其实就是电脑文件的BOM问题。
架设js需要通过Ajax获取内容,判断内容是否等于abc的时候,如果ajax请求文件存在BOM头,那么结果可能就是\uFEFF\u0061\u0062\u0063,那么判断时候就会出错。所以把\uFEFF去掉。
平常都不需要这样处理,需要这样处理大多的话,是因为没有规范文档编码
有时候操作这些东西的时候,t替换些东西是没办法的,按正常操作来进行就可以了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询