簡體   English   中英

用於替換多個縮寫的jQuery / Javascript解決方案

[英]jQuery/Javascript solution for replacing multiple abbreviations

例如,我需要一些能解析字符串的東西,並用完整的單詞替換多個街道類型的縮寫('Rd'將成為'Road')。 這有點回答這里,但我想要一個像下面這樣的單個對象,因為這將是一個很長的列表,這將有助於保持正確的組織,

var streets = {
       'RD': 'ROAD',
       'ST': 'STREET',
       'PL': 'PLACE'};

我知道我以前見過這樣的事情,但我有點迷失如何從這里開始。 我知道我需要接受有問題的字符串並通過這個'過濾器'運行值(如果你可以這樣稱呼它),但我只是不確定如何,因為我仍然是新手。 非常感謝

你只需要一個簡單的for / in循環來遍歷鍵並在字符串中替換它們,如下所示:

 var input = "something RD, other ST, some PL, another RD"; var streets = { 'RD': 'ROAD', 'ST': 'STREET', 'PL': 'PLACE' }; for (var key in streets) { var re = new RegExp(key, 'gi'); input = input.replace(re, streets[key]); } console.log(input); 

您還可以更改正則表達式邏輯,以便在需要時使匹配更准確; 它完全取決於輸入字符串的格式。

對於固定字符串,請使用.split().join()

var streets = { 'RD': 'ROAD', 'ST': 'STREET', 'PL': 'PLACE'};
var str = 'Some ST that is by the PL along the RD where the ST is by that PL.'

for(k in streets){ str = str.split(k).join(streets[k]) }

結果

console.log(str)
Some STREET that is by the PLACE along the ROAD where the STREET is by that PLACE.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM