JavaScript-同样一段js代码,为什么在IE跟火狐下的结果会不一样
var last_tag = '的的 x';
last_tag = last_tag.replace(/[s]+x$/, '');
alert(last_tag);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
var last_tag = '的的 x';
last_tag = last_tag.replace(/[s]+x$/, '');
alert(last_tag);
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
不同浏览器的js引擎不一样,像div+css一样,不同浏览器的标准和规范不一样,渲染的结果不一样。
于是就有兼容性问题。
这是群里一位朋友告诉我的答案
'的的 x'这边的空格好像是中文的空格……unicode 160 呢……刚测了一下,IE7 的 s 只包括了 unicode 9 10 11 12 13 32,到 IE8 才加了 160……之后就都是 9 10 11 12 13 32 160,所以那个 IE7 测不出来……
可以用不同浏览器下运行这段代码
for(var i = 0; i < 1000; i += 1) {
if (String.fromCharCode(i).replace(/s/, "") === "")
console.log(i);
}
在火狐和 IE 下面都运行一下,两个结果的区别就是原因的说……
在正则表达式修改成/[su00A0]+x$/ 问题解决 。
最后谢谢大家的回答哦
我这没有xp,我在win7 下,IE7/8/9和ff的结果是一样的。都是 '的的'