簡體   English   中英

用 javascript 中的不同單詞替換每個出現的字符/單詞

[英]Replace each occurrence of character/word with different word in javascript

var string = "Please click on dashboard and then open the dashboard details to verify your details on the data"; var stringArray = ["dashboard", "dashboard", "data"] var replaceArray = ["https://abcd.com/login", "https://abcd.com/home", "https://abcd.com/data"] for(i=0;i<stringArray.length; i++){ string = string.replace(stringArray[i].trim(), "<a href='"+replaceArray[i].trim()+"'>"+stringArray[i].trim()+"</a>"); }

我有一個 string 和 2 個 arrays 像上面一樣。 我需要用兩個 arrays 中提到的相應錨鏈接標簽替換我的 string。 stringArray 定義要鏈接的單詞,replaceArray 定義應添加的 URL。 就像儀表板的第一次出現應該錨鏈接到“https://abcd.com/login”和“儀表板”的第二次出現應該替換為“https://abcd.com/home”和“數據”應該替換與“https://abcd.com/data”。

我試圖找出 string 中的單詞並使用 replace/replaceAll 替換它,對於單個出現的單詞工作正常,但對於多次出現它不起作用。

任何人都可以幫我解決這個問題。

結果:

 "Please click on <a href='https://abcd.com/login'><a href='https://abcd.com/home'>dashboard</a></a> and then open the dashboard details to verify your details on the <a href='https://abcd.com/data'>data</a>"

預期 Output:

 "Please click on <a href='https://abcd.com/login'>dashboard</a> and then open the <a href='https://abcd.com/home'>dashboard</a> details to verify your details on the <a href='https://abcd.com/data'>data</a>"

我建議使用 reduce 方法和正則表達式來解決這個問題,其中正則表達式將是 stringArray 數組的 n 元素。

通過reduce,我們將通過在每次迭代時替換變量“string”中的單詞來實現這一點,對於下一次迭代,我們已經替換了變量“string”的更改值

解決方案:

 var string = "Please click on dashboard and then open the dashboard details to verify your details on the data"; var stringArray = ["dashboard", "dashboard", "data"]; var replaceArray = ["apple collection", "delta collection", "data collection"]; stringArray.reduce((acc, stringRegExp, index) => { return acc.replace(new RegExp(stringRegExp), replaceArray[index]); }, string)

暫無
暫無

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

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