我正在尝试用Javascript替换多行,IE给我带来了麻烦。
pastebin在这里:http://jsbin.com/olahi/edit
我正在尝试做的解释: 这是我的HTML:
<textarea id="editthis">
Hello from JS Bin
Whats up from JS Bin
Whats
up from JS Bin
</textarea >
我的JS:
jQuery.fn.runReplacement= function(expr) {
return this.each(function() {
this.innerHTML = this.innerHTML
.replace(/Hello/ig, "Hey")
.replace(/Whats ?\n? ?up/ig, "Hey")
;
});
};
$(function() {
$("textarea").runReplacement();
});
在我的JS(jQuery)示例中,我只是想用'嘿'来替换Hello和'Whats up'。
在IE中,前两行有效,但不是第三行(和第四行)。在Chrome和FF中,所有4行都可以使用。
我没有看到任何理由为什么IE不应该支持\ n。我做错了吗?
提前致谢。
谢谢大家,了解IE需要/ r / n而不仅仅是/ n。
任何使我的代码跨浏览器的建议,而不仅仅是IE或其他所有。
谢谢!
答案 0 :(得分:1)
在IE6中,它实际上对我来说很好。然而,这应该是一个“更好”的正则表达式,因为它将匹配\ r和\ n字符(这可能是IE正在滑落的地方 - 看到\ r而不是,或者和\ n),以及任何空格。
str.replace(/Whats\s+up/ig, "Hey")
答案 1 :(得分:1)
CR / LF字符与IE与其他浏览器略有不同。在IE中它是\ r \ n。
跨浏览器解决方案:/什么?\ r?\ n? ?向上/
答案 2 :(得分:1)
Internet Explorer使用\r\n
作为<textarea>
中的换行符。