考虑到大小写的动态关键字替换

时间:2018-11-29 05:01:45

标签: javascript jquery

我有一个要求客户端提供如下的json。

{
          "2222": [
            {
              "Employees": "Resources"
            },
            {
              "get": "obtain"
            }
          ],
          "33333": [
            {
              "Employees": "Partners"
            },
            {
              "get": "receive"
            }
          ],
          "111111": [
            {
              "Employees": "Associates"
            }
          ],
          "ABCD": [
            {
              "Employees": "workers"
            },
            {
              "test": "take"
            },
            {
              "TEST": "TESTTING"
            },
            {
              "Test": "Workers"
            }
          ]
        }

我必须根据ID从json读取值,并且如果第一个单词在加载时出现在我的网站中,则必须用json中给出的第二个单词替换第一个单词。所以我用js写了下面的代码。

function keywordReplace(idStore) {
        	$.getJSON("keywordReplace.json").done(
        			function(data) {
        				dynamicData = data;
        				$.each(dynamicData, function(key, value) {
        					if (key == idStore) {
        						$.each(value, function(keydata, valuedata) {
        							$.each(valuedata, function(keydata, valuedata) {
        								keyReplace(keydata, valuedata);
        							});
        						});
        					}
        				});
        			});
        }
    function keyReplace(oldKey, newKey) {
    	var re = new RegExp("//b"+oldKey+"//b", "g");
    
    	$("body").children().each(function() {
    		$(this).html($(this).html().replace(re, newKey));
    	});
    
    }

但是现在他们告诉我替换所有单词,而不考虑json中给出的大小写。就像在Json中一样,如果他们要用“合作伙伴”替换“雇员”,那么我必须考虑所有旧词(“雇员”)的情况,并且必须在站点中进行相应的替换。表示如果“雇员”是小写字母,则用小写字母“伙伴”代替,大写字母和驼色字母也是如此。

在json中,它们也可以替换阶段。

1 个答案:

答案 0 :(得分:0)

var keywordToReplace =“合作伙伴”; var replaceKeyword =“雇员”;

1)检查每个循环,如果replaceKeyword.charAt(0)是大写字母,则将其替换为keywordToReplace变量,否则,如果所有字符都小写,则使keywordToReplace.toLowerCase()。

2)还要使用replaceKeyword.toUpperCase()==变量进行检查,然后所有字符均以大写字母表示,然后将其替换为keywordToReplace.toUpperCase()

3)对于所有匹配的旧外观相似字符,您必须确保数组中包含所有可能相似的单词,以进行比较