在JavaScript中有没有一个简单的等价物呢?
$find = array("<", ">", "\n");
$replace = array("<", ">", "<br/>");
$textarea = str_replace($find, $replace, $textarea);
这是使用PHP的str_replace
,它允许您使用一组单词来查找和替换。我能用JavaScript / jQuery做这样的事情吗?
...
var textarea = $(this).val();
// string replace here
$("#output").html(textarea);
...
发布于 2011-02-22 02:31:35
您可以使用自己的函数来扩展String对象,该函数可以完成所需的操作(如果缺少功能,则非常有用):
String.prototype.replaceArray = function(find, replace) {
var replaceString = this;
for (var i = 0; i < find.length; i++) {
replaceString = replaceString.replace(find[i], replace[i]);
}
return replaceString;
};
对于全局替换,您可以使用regex:
String.prototype.replaceArray = function(find, replace) {
var replaceString = this;
var regex;
for (var i = 0; i < find.length; i++) {
regex = new RegExp(find[i], "g");
replaceString = replaceString.replace(regex, replace[i]);
}
return replaceString;
};
要使用该函数,它将类似于您的PHP示例:
var textarea = $(this).val();
var find = ["<", ">", "\n"];
var replace = ["<", ">", "<br/>"];
textarea = textarea.replaceArray(find, replace);
发布于 2011-02-22 02:06:07
text = text.replace(/</g, '<').replace(/>/g, '>').replace(/\n/g, '<br/>');
发布于 2013-04-16 00:25:24
一种更直观的方法:
String.prototype.htmlProtect = function() {
var replace_map;
replace_map = {
'\n': '<br />',
'<': '<',
'>': '>'
};
return this.replace(/[<>\n]/g, function(match) { // be sure to add every char in the pattern
return replace_map[match];
});
};
这就是你所说的:
var myString = "<b>tell me a story, \n<i>bro'</i>";
var myNewString = myString.htmlProtect();
// <b>tell me a story, <br /><i>bro'</i>
https://stackoverflow.com/questions/5069464
复制相似问题