last_tag="abcde x";
last_tag = last_tag.replace(/[\s]+x$/, '');
这是我的问题:我必须删除字符串末尾的“x”。这段代码用于我一直使用的插件,直到现在。在IE 7上,“last_tag”以错误的方式被选中,所以我得到一个“x”,我必须删除它。我认为谁编写了这个插件添加了这个替换来做到这一点,但它不适用于IE7。
实施例: 之前:last_tag =“abcde x” 之后:last_tag =“abcde”
实际上问题是last_tag保持完全相同。
是正则表达式吗? IE有任何错误或兼容性问题吗?
编辑:可能正则表达式不是问题。我尝试过这段代码,但没有任何反应:
var temp_tag="abc x";
alert(temp_tag);
temp_tag = temp_tag.replace(/[\s]+x$/, '');
alert(temp_tag)
同一段代码在Chrome上完美运行。
答案 0 :(得分:3)
正则表达式看起来没问题,但您可能尝试匹配不间断空格(U+00A0
)。 \s
与IE中的不匹配(如this answer中所述),但它在FireFox和Chrome中都有效。
答案 1 :(得分:2)
我会选择这个RegExp
/\s+x$/
不要对[]
使用字符类\s
,因为[ \t\r\n\v\f]
已经是一个字符类
(/[\s\u00A0]+x$/
之类的简写)(空格,制表符,回车符,换行符,垂直制表符,换页符)
编辑
艾伦摩尔是对的:
试试这个
\u00a0
编辑
也许这是区分大小写的:也许{{1}}不正确
这应匹配每个空格字符以及非间隔空格
答案 2 :(得分:0)
试试这个
last_tag = last_tag.replace(/[\t\r\n]+x$/, '');