首页 > 解决方案 > 重用 Javascript 代码,而无需一次又一次地重新粘贴它

问题描述

我有下面的代码,它查找文本“UID”并将其更改为“UID *”

在我的页面上,还有“描述”、“分数”等其他术语。我也想在这些后面加上 * - 有没有一种简洁的方法可以让下面的代码也可以编辑它们?我知道的唯一方法是一次又一次地重复这个代码块?

    <script type="text/javascript">
    //Mark UID as Mandatory
    var CFN = "UID";
    $(document).ready(ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"));
    function MainFunction() {
        Mandatory();
    }
    function Mandatory(){
    $(".ms-accentText").each(function() {
    var text = $(this).text(); 
    $(this).text(text.replace(CFN, 'UID *'));
    });
    }    
    </script>

编辑。我尝试了下面的回复,但这对我不起作用,我现在有了这段代码,但又似乎不起作用(它试图在使用 a 找到的“UID”和“描述”上添加 *多变量;

    <script type="text/javascript">
    //Mark UID as Mandatory
    var MandatoryCFs = ["UID", "Description"];
    $(document).ready(ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"));
    function MainFunction() {
        Mandatory();
    }
    function Mandatory(){
    $(".ms-accentText").each(function() {
    var text = $(this).text(); 
    $(this).text(text.append(MandatoryCFs, ' *'));
    });
    }    
    </script>

标签: javascript

解决方案


使用正则|表达式列表替换多个字符串

    //Mark UID as Mandatory
    var MandatoryCFs = ["UID", "Description"];
    $(document).ready(ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"));
    function MainFunction() {
        Mandatory();
    }
    function Mandatory(){
      $(".ms-accentText").each(function() {
        var text = $(this).text(); 
        $(this).text(text.replace(new RegExp(MandatoryCFs.join('|'),'g'), '$& *'));
      });
    }

或者如果您不需要替换的字符串是动态的,则可以这样:

text.replace(/UID|Description/g, '$& *')

推荐阅读