在JavaScript中有没有简单的类似功能呢?

$find = array("<", ">", "\n");
$replace = array("&lt;", "&gt;", "<br/>");

$textarea = str_replace($find, $replace, $textarea); 

这是使用PHP的str_replace,它允许您使用一个单词数组来查找和替换.我可以使用JavaScript/jQuery做类似的事情吗?

...
var textarea = $(this).val();

// string replace here

$("#output").html(textarea);
...

推荐答案

您可以使用自己的函数来扩展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;
};

For global replace you could use 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;
};

To use the function it'd be similar to your PHP example:

var textarea = $(this).val();
var find = ["<", ">", "\n"];
var replace = ["&lt;", "&gt;", "<br/>"];
textarea = textarea.replaceArray(find, replace);

Jquery相关问答推荐

这是否会导致内存泄漏?

在shiny 的datatable列中启用智能搜索

当我使用 OwlCarousel 时,没有任何显示

如何在没有实体框架的情况下在 ASP.NET 上使用 ajax 和 jquery 从列表创建数据表

即使我使用 [FromBody] C# 从视图(Ajax)发送请求时在控制器中收到 NULL 对象

在正则表达式字符括号中包含连字符?

使用淡入淡出和追加

模糊事件阻止点击事件工作?

jQuery - 向下滚动时缩小的粘性标题

ASP .NET MVC 在每个字段级别禁用客户端验证

jQuery淡出不显示无?

如何重新启用 event.preventDefault?

jquery 从特定表单获取所有输入

如何使用 jQuery 更改文本

消除移动 Safari 中点击事件的 300 毫秒延迟

JavaScript 等效于 jQuery 的扩展方法

Twitter Bootstrap alert 消息关闭并再次打开

如何在jQuery中 Select 最后一个子元素?

如何在 ReactJS 中使用 JQuery

使用 moment.js 将日期转换为字符串MM/dd/yyyy