简单/基本Jquery或Javascript字符串替换多个值

简单/基本Jquery或Javascript字符串替换多个值,javascript,jquery,str-replace,Javascript,Jquery,Str Replace,我有一个数据库输出: 示例短语 示例2短语或 示例解决方案 我需要将页面加载中的这些内容替换为: 例句 例2短语 示例与解决方案 我已经在页面上加载了jQuery,所以我可以使用jQuery解决方案,但我知道使用一些基本的Javascript也是可能的……问题是我对其中任何一个都不了解,而且我找到的示例都不能满足我的需要。我还需要能够添加更多的替代品在未来 更新:我从另一个项目中得到了这个,但它替换了页面上任何h2元素中“=”之前的所有内容(包括“=”。第一行:var re=/^[^=]+=\s

我有一个数据库输出:

  • 示例短语
  • 示例2短语
  • 示例解决方案
  • 我需要将页面加载中的这些内容替换为:

  • 例句
  • 例2短语
  • 示例与解决方案
  • 我已经在页面上加载了jQuery,所以我可以使用jQuery解决方案,但我知道使用一些基本的Javascript也是可能的……问题是我对其中任何一个都不了解,而且我找到的示例都不能满足我的需要。我还需要能够添加更多的替代品在未来

    更新:我从另一个项目中得到了这个,但它替换了页面上任何h2元素中“=”之前的所有内容(包括“=”。第一行:
    var re=/^[^=]+=\s*/,
    丢失了所有符号,不过:

    <script>
        var re = /^[^=]+=\s*/,
            elements = document.getElementsByTagName('h2')
    
        function processText(el) {
            el.textContent = el.textContent.replace(re, '');
        }
    
        for(var i = 0, l = elements.length; i < l; i++) {
            processText(elements[i]);
        }
    </script>
    
    
    变量re=/^[^=]+=\s*/,,
    elements=document.getElementsByTagName('h2')
    函数processText(el){
    el.textContent=el.textContent.replace(re.);
    }
    for(var i=0,l=elements.length;i
    但这可能不是最有效的解决方案。你可能需要问自己:你需要案件不敏感吗?单个输入是否可以包含多个需要替换的字符串?字符串本身是完全等于替换键还是包含替换键

    编辑

    (已更新)根据您的更新,您可能希望对所有
    h2
    标记执行此操作。 请尝试以下代码:

    $(function() {
        var REPLACEMENTS = {
            'example-phrase': 'Example Phrase',
            'example2-phrase': 'Example 2 Phrase',
            'example-solution': 'Example & Solution'
        }
    
        function doReplacement(input) {
            for (var key in REPLACEMENTS) {
                input = input.replace(key, REPLACEMENTS[key]);
            }
    
            return input;
        }
    
        $('h2').each(function() {
            var $this = $(this);
            $this.html(doReplacement($this.html()));
        });
    });
    
    但这可能不是最有效的解决方案。你可能需要问自己:你需要案件不敏感吗?单个输入是否可以包含多个需要替换的字符串?字符串本身是完全等于替换键还是包含替换键

    编辑

    (已更新)根据您的更新,您可能希望对所有
    h2
    标记执行此操作。 请尝试以下代码:

    $(function() {
        var REPLACEMENTS = {
            'example-phrase': 'Example Phrase',
            'example2-phrase': 'Example 2 Phrase',
            'example-solution': 'Example & Solution'
        }
    
        function doReplacement(input) {
            for (var key in REPLACEMENTS) {
                input = input.replace(key, REPLACEMENTS[key]);
            }
    
            return input;
        }
    
        $('h2').each(function() {
            var $this = $(this);
            $this.html(doReplacement($this.html()));
        });
    });
    
    但这可能不是最有效的解决方案。你可能需要问自己:你需要案件不敏感吗?单个输入是否可以包含多个需要替换的字符串?字符串本身是完全等于替换键还是包含替换键

    编辑

    (已更新)根据您的更新,您可能希望对所有
    h2
    标记执行此操作。 请尝试以下代码:

    $(function() {
        var REPLACEMENTS = {
            'example-phrase': 'Example Phrase',
            'example2-phrase': 'Example 2 Phrase',
            'example-solution': 'Example & Solution'
        }
    
        function doReplacement(input) {
            for (var key in REPLACEMENTS) {
                input = input.replace(key, REPLACEMENTS[key]);
            }
    
            return input;
        }
    
        $('h2').each(function() {
            var $this = $(this);
            $this.html(doReplacement($this.html()));
        });
    });
    
    但这可能不是最有效的解决方案。你可能需要问自己:你需要案件不敏感吗?单个输入是否可以包含多个需要替换的字符串?字符串本身是完全等于替换键还是包含替换键

    编辑

    (已更新)根据您的更新,您可能希望对所有
    h2
    标记执行此操作。 请尝试以下代码:

    $(function() {
        var REPLACEMENTS = {
            'example-phrase': 'Example Phrase',
            'example2-phrase': 'Example 2 Phrase',
            'example-solution': 'Example & Solution'
        }
    
        function doReplacement(input) {
            for (var key in REPLACEMENTS) {
                input = input.replace(key, REPLACEMENTS[key]);
            }
    
            return input;
        }
    
        $('h2').each(function() {
            var $this = $(this);
            $this.html(doReplacement($this.html()));
        });
    });
    
    看看这个:

    正如您所说,您的字符串(1)是:

    上述解决方案适用于第一种情况。对于第三种情况,只需添加以下内容

    var ex3 = "example-solution";
    var res3 = ex3.replace("-", " ");
    res3 = res3.toLowerCase().replace(/\b[a-z]/g, function(letter) {
        return letter.toUpperCase();
    });
    res3 = res3.replace(" ", " & ");
    
    我觉得每次收到回复都要检查是不可行的

    多亏了

    来看看这个:

    正如您所说,您的字符串(1)是:

    上述解决方案适用于第一种情况。对于第三种情况,只需添加以下内容

    var ex3 = "example-solution";
    var res3 = ex3.replace("-", " ");
    res3 = res3.toLowerCase().replace(/\b[a-z]/g, function(letter) {
        return letter.toUpperCase();
    });
    res3 = res3.replace(" ", " & ");
    
    我觉得每次收到回复都要检查是不可行的

    多亏了

    来看看这个:

    正如您所说,您的字符串(1)是:

    上述解决方案适用于第一种情况。对于第三种情况,只需添加以下内容

    var ex3 = "example-solution";
    var res3 = ex3.replace("-", " ");
    res3 = res3.toLowerCase().replace(/\b[a-z]/g, function(letter) {
        return letter.toUpperCase();
    });
    res3 = res3.replace(" ", " & ");
    
    我觉得每次收到回复都要检查是不可行的

    多亏了

    来看看这个:

    正如您所说,您的字符串(1)是:

    上述解决方案适用于第一种情况。对于第三种情况,只需添加以下内容

    var ex3 = "example-solution";
    var res3 = ex3.replace("-", " ");
    res3 = res3.toLowerCase().replace(/\b[a-z]/g, function(letter) {
        return letter.toUpperCase();
    });
    res3 = res3.replace(" ", " & ");
    
    我觉得每次收到回复都要检查是不可行的




    多亏了

    ,有些代码会很好。如果可能的话,最好在服务器上执行。@Juhana-这可以用PHP完成吗?@wared-这是输出的代码,只是包装在一个div中。如果这有助于“按类名获取元素”,我可以给div一个类名解决方案。一些代码会很好。如果可能的话,最好在服务器上这样做。@Juhana-这可以用PHP完成吗?@wared-这是输出的代码,只是包装在一个div中。如果这有助于“按类名获取元素”,我可以给div一个类名解决方案。一些代码会很好。如果可能的话,最好在服务器上这样做。@Juhana-这可以用PHP完成吗?@wared-这是输出的代码,只是包装在一个div中。如果这有助于“按类名获取元素”,我可以给div一个类名解决方案。一些代码会很好。如果可能的话,最好在服务器上这样做。@Juhana-这可以用PHP来完成吗?@wared-这是输出的代码,只是包装在一个div中。如果这有助于“按类名获取元素”解决方案,我可以给div一个类名。我需要的正是您如何拥有它。被替换的字符串总是相同的,需要替换的字符串总是相同的。这段代码对性能有什么影响?这取决于您运行这段代码的频率以及替换的次数。比如说,如果你有20条新闻标题和50条可能的替代品,你根本不需要关心它的性能。如果你在数千条文本上运行这篇文章,有数百条替换内容,这可能会成为一个问题。啊,幸运的是,只运行一页,可能只会发生10-20条替换内容。我是否需要一些其他代码,以便在页面加载时自动运行此功能?是的,您还需要一些代码-此函数只是在给定字符串中进行替换。将编辑我的答案,再看一眼:)完美!非常感谢。我接受了回答,这正是我所需要的。我确实必须将
    $
    更改为
    jQuery
    ,以避免冲突(我无法确定