我正在嘗試查找并替換一些特殊的 html 實(shí)體,即 '&' 轉(zhuǎn)換為&'>' 轉(zhuǎn)換為>. 這是一個電子郵件生成器工具,一些老客戶需要用 html 實(shí)體替換字符。用戶傳遞一個字符串,我使用 javascript 循環(huán)遍歷一個對象數(shù)組。這將找到一個字符并將其替換為正確的 html 實(shí)體。您可以在此處查看我正在使用的正則表達(dá)式代碼:https://regex101.com/r/WZh5tA/2 escapeCharacter: function(string){ var replaceChar = [ {reg : '&', replace: '&'}, {reg : '"', replace: '"'}, {reg : '£', replace: '£'}, {reg : '€', replace: '€'}, {reg : 'é', replace: 'é'}, {reg : '–', replace: '–'}, {reg : '?', replace: '®'}, {reg : '?', replace: '™'}, {reg : '‘', replace: '‘'}, {reg : '’', replace: '’'}, {reg : '“', replace: '“'}, {reg : '”', replace: '”'}, {reg : '#', replace: '#'}, {reg : '?', replace: '©'}, {reg : '@', replace: '@'}, {reg : '$', replace: '$'}, {reg : '\\(', replace: '('}, {reg : '\\)', replace: ')'}, {reg : '<', replace: '<'}, {reg : '>', replace: '>'}, {reg : '…', replace: '…'}, {reg : '-', replace: '-'}, {reg : "'", replace: '''}, {reg : '\\*', replace: '*'}, {reg : ',', replace: '‚'} ]; var s = string; replaceChar.forEach(function(obj){ var regEx = new RegExp(obj.reg+"(?!([^<]+)?>)", "g"); s = s.replace(regEx, obj.replace); }); return s }當(dāng)用戶傳遞帶有 html 標(biāo)簽的字符串時會出現(xiàn)問題(應(yīng)該允許他們這樣做)。例如,字符串可以是:'This is an example of some <b>bold</b> text'我的查找和替換工具工作起來很神奇,但我想我錯過了一些東西,因?yàn)槲业玫搅诉@個輸出:'This is an example of some <b>bold</b> text'
使用正則表達(dá)式替換html標(biāo)簽之外的特殊字符
富國滬深
2021-06-15 12:08:58