[英]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.