重用Javascript代码,而不必一遍又一遍地重复

时间:2020-04-22 09:50:19

标签: 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>

编辑。我尝试了以下答复,但对我而言不起作用,我现在已经获得了此代码,但再次似乎不起作用(它试图在使用“ UID”和“ Description”的位置添加*多变量;

    <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>

1 个答案:

答案 0 :(得分:0)

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

    //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, '$& *')