Jquery 查找并替换多个单词?

Jquery 查找并替换多个单词?,jquery,Jquery,我需要使用jQuery更改页面上的一堆不同单词。这是我目前掌握的代码: (function($) { var thePage = $("body"); thePage.html(thePage.html().replace([/My Classes/g, 'My Levels'],)); })(jQuery) 如何修改此代码以便查找和替换更多单词?假设我还想将“狗”替换为“猫”,将“男孩”替换为“女孩”。如果将替换值链接起来,则可以执行以下操作: thePage.html(thePag

我需要使用jQuery更改页面上的一堆不同单词。这是我目前掌握的代码:

(function($) {
  var thePage = $("body");
  thePage.html(thePage.html().replace([/My Classes/g, 'My Levels'],));
})(jQuery)

如何修改此代码以便查找和替换更多单词?假设我还想将“狗”替换为“猫”,将“男孩”替换为“女孩”。

如果将替换值链接起来,则可以执行以下操作:

thePage.html(thePage.html().replace([/My Classes/g, 'My Levels'],))
                            .replace([/dog/g, 'cat'],))
                            .replace([/bird/g, 'pen'],));
编辑:

以下是您在JSFIDLE上提供的更新代码

(function($) {

    $(function(){
    var thePage = $("body");
    thePage.html(thePage.html().replace(/My Classes/g, 'My Levels').replace(/dog/g, 'cat').replace(/bird/g, 'pen'));
    });

})(jQuery)​
以及JSFIDLE链接:


您可以做的是链接替换值,例如:

thePage.html(thePage.html().replace([/My Classes/g, 'My Levels'],))
                            .replace([/dog/g, 'cat'],))
                            .replace([/bird/g, 'pen'],));
编辑:

以下是您在JSFIDLE上提供的更新代码

(function($) {

    $(function(){
    var thePage = $("body");
    thePage.html(thePage.html().replace(/My Classes/g, 'My Levels').replace(/dog/g, 'cat').replace(/bird/g, 'pen'));
    });

})(jQuery)​
以及JSFIDLE链接:


试试这个优雅的解决方案


您可以定义一个表示搜索和替换项的键值对数组,然后像这样循环。不需要jQuery

从上到下尝试这个优雅的解决方案


您可以定义一个表示搜索和替换项的键值对数组,然后像这样循环。不需要jQuery

你根本不需要
jQuery
来做这件事,但是在不知道你在做什么的情况下给出一个好的答案是非常困难的。例如,“狗”和“男孩”可以出现在单词中。您是想替换这些实例,还是只替换完整的单词?如果它们在属性内,或者它们本身是属性或元素,该怎么办?有什么优先权吗

也就是说,JavaScript
String
没有一种方法可以同时替换多个单词。您可以链接
.replace
,也可以实现如下功能:

String.prototype.replaceMulti = function (args) {
   for (var x = 0; x < args.length; x++) {
      this = this.replace(args.from, args.to);
   }
}

thePage.html(thePage.html().replaceMulti([{from: /dog/g, to: 'cat'}]);
String.prototype.replaceMulti=函数(args){
对于(变量x=0;x
你绝对不需要
jQuery
来做这件事,但是在不知道你在做什么的情况下给出一个好的答案是非常困难的。例如,“狗”和“男孩”可以出现在单词中。是否也要替换这些实例,或者只替换完整的单词?如果它们在属性中,或者它们本身是属性或元素,该怎么办?是否有某种优先级

也就是说,JavaScript
String
没有一种方法可以一次替换多个单词。您可以将
.replace
链接起来,也可以实现如下功能:

String.prototype.replaceMulti = function (args) {
   for (var x = 0; x < args.length; x++) {
      this = this.replace(args.from, args.to);
   }
}

thePage.html(thePage.html().replaceMulti([{from: /dog/g, to: 'cat'}]);
String.prototype.replaceMulti=函数(args){
对于(变量x=0;x
对于少量替换,这很有效。我可能会将值和它们的替换放在一个数组中,并使用循环来处理它们,以便在有很多值或它们变化很大时进行编辑。如果您可以执行
var replace={'boy':'girl','this':'that'}
replace(函数(){//replace using using over});
这将是一个优雅的版本。+1对于少量替换,这很好。我可能会将值及其替换放在一个数组中,并使用循环来处理它们,以便在有很多值或它们变化很大时进行编辑。如果您可以执行类似
var replace={'boy':'girl','this':'that'}
替换(函数(){//replace using over})
这将是一个优雅的版本。+1在这个例子中,这不是太复杂了吗?他不是要多只狗,而是要多只猫,也许他是,但更多的是狗对猫,男孩对女孩,等等……一句话中的多个替换。我不明白我的解决方案为什么不是这样“一个语句中的多个替换”那么您希望此人执行此操作吗?thePage.html(thePage.html().replaceMulti([{from:/dog/g,to:'cat'},{from:/boy/g,to:'girl'},{from:/this/g,to:'that'}]));这和Bogdan的解决方案有什么不同?除了他没有扩展StringI的功能之外,我没有说你错了,我问这是不是用锤子敲开了一个鸡蛋我只是提供了一个不同的解决方案。我的解决方案提供了Bogdan没有的两件事:重用和不限制输入(Bogdan要求您提前编写方法链).我不认为我的更复杂,但显然你不同意。在这个例子中,这不是太复杂了吗?他不是要求多只狗,而是多只猫,也许他是,但更多的是狗对猫,男孩对女孩,等等…一句话中的多个替换。我不明白我的解决方案为什么不是“一个语句中的多个替换“那么您希望此人执行此操作吗?”thePage.html(thePage.html().replaceMulti([{from:/dog/g,to:'cat'},{from:/boy/g,to:'girl'},{from:/this/g,to:'that'}]));这和Bogdan的解决方案有什么不同?除了他没有扩展StringI的功能之外,我没有说你错了,我问这是不是用锤子敲开了一个鸡蛋我只是提供了一个不同的解决方案。我的解决方案提供了Bogdan没有的两件事:重用和不限制输入(Bogdan's要求你提前编写方法链)。我不认为我的方法链更复杂,但显然你不同意。val代表你的分隔符吗?为什么要这样做?text.split(val)@Churk它通过拆分文本(你的HTML)来工作放入一个由搜索词分隔的数组中。例如,拆分“My lovely string is lovely.”按“lovely”将为数组('My'、'string is'、')。然后,您可以用替换词(例如“Asthy”)将其合并让我说:“我讨厌的字符串很讨厌。”拆分和联接可以很好地复制多个搜索替换。嗯,谢谢你的解释。我喜欢这样。我对所有回复发表评论的原因是,我一直在寻找一个比Bogdan更优雅的解决方案来解决我自己的问题,这实际上比我预期的要多。val代表你的分隔符吗?为什么你能这样做吗?text.split(val)@Churk它通过拆分文本(y)来工作