计算不包括关键字列表的字符串长度?

Eva*_*van 2 javascript jquery

我根据输入的字符串长度验证了多个字段.但是,以下数组中的任何值都不得计入字符串长度:

var omittedSubStrings = ["%KEYWORD%","{Keyword:AltText}","%CITY_STATE%","%CITY%","%KEYWORD%","%KEY_WORD%","%QUERY_KEYWORD%","%QUERY_KEY_WORD%","$CLICK_ID$","$LOCATION$","%URLENC_CITY%","%NOSPACE_CITY%","%STATE%","$USER_PLACEMENT_INV_ID$"];
Run Code Online (Sandbox Code Playgroud)

例如,如果我的字符串是:

var str = "Hello %CITY%";
Run Code Online (Sandbox Code Playgroud)

我希望得到该字符串的长度等于6.多个变量可以在一个字符串中使用,并且它们必须全部不计入长度.

建议?

PPv*_*PvG 5

function countSubstringless(str, subStrings) {
    var length = subStrings.length;
    for (var i=0; i<length; i+=1) {
        str = str.replace(subStrings[i], '');
    }
    return str.length;
}

var omittedSubStrings = ["%KEYWORD%","{Keyword:AltText}","%CITY_STATE%","%CITY%","%KEYWORD%","%KEY_WORD%","%QUERY_KEYWORD%","%QUERY_KEY_WORD%","$CLICK_ID$","$LOCATION$","%URLENC_CITY%","%NOSPACE_CITY%","%STATE%","$USER_PLACEMENT_INV_ID$"];
var str = "Hello %CITY%";

console.log(countSubstringless(str, omittedSubStrings));
// 6
Run Code Online (Sandbox Code Playgroud)