2016-10-05 20 views
0

我想知道是否有更好的方法來處理大量的jQuery/JavaScript替換。這是我的代碼目前的樣子,我將添加更多的單詞/短語。我想知道是否應該用數組或對象中的單詞進行某種循環?或者應該將這些單詞保存在不同的文件中?如何處理大量的替換?

input = input.replace(/\band\b/g, "&") 
     //COMMON ABREVIATIONS 
     .replace(/\bwith\b/g, "w/") 
     .replace(/\bwithout\b/g, "w/o") 
     .replace(/\bpeople\b/g, "ppl") 
     .replace(/\bbecause\b/g, "b/c") 
     .replace(/\bestablished\b/g, "est.") 
     .replace(/\bstreet\b/gi, "St.") 
     .replace(/\bavenue\b/gi, "Ave.") 
     .replace(/\bparkway\b/gi, "Pkwy.") 
     .replace(/\blane\b/gi, "Ln.") 
     .replace(/\bboulevard\b/gi, "Blvd.") 
     .replace(/\bassociates\b/gi, "Assoc.") 
     .replace(/\bretweet\b/gi, "RT") 
     .replace(/\bapartment\b/gi, "Apt.") 
     .replace(/\bdirect message\b/gi, "DM") 
     .replace(/\bphoto credit\b/, "PC") 
     .replace(/\bphoto cred\b/, "PC"); 
+1

你可以循環通過與jQuery的對象/數組[。每次(http://api.jquery.com/jquery.each/),那麼也許定義存儲在不同的文件或通過Ajax或從一個數據庫獲取它。 – KiiroSora09

+0

我得到了一個解決方案,但要找到我的schoolar工作表,給我一分鐘。 –

+0

在您的示例數據中,您想要輸出什麼? – KiRa

回答

0

我找到了一些東西,但不幸的是,它並沒有用兩個單詞來捕捉短語。我敢打賭,RegEx出了問題。

var input = { 
 
    'band': "&", 
 
    'with': "w/", 
 
    'without': "w/o", 
 
    'people': "ppl", 
 
    'because': "b/c", 
 
    'established': "est.", 
 
    'street': "St.", 
 
    'avenue': "Ave.", 
 
    'parkway': "Pkwy.", 
 
    'lane': "Ln.", 
 
    'boulevard': "Blvd.", 
 
    'associates': "Assoc.", 
 
    'retweet': "RT", 
 
    'apartment': "Apt.", 
 
    'direct message': "DM", 
 
    'photo credit': "PC", 
 
    'photo cred': "PC" 
 
}; 
 

 
console.log('band with'.replace(/\w+/gi, match => input[match]));