第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達(dá)式替換html標(biāo)簽之外的特殊字符

使用正則表達(dá)式替換html標(biāo)簽之外的特殊字符

富國滬深 2021-06-15 12:08:58
我正在嘗試查找并替換一些特殊的 html 實(shí)體,即 '&' 轉(zhuǎn)換為&amp;'>' 轉(zhuǎn)換為&gt;. 這是一個電子郵件生成器工具,一些老客戶需要用 html 實(shí)體替換字符。用戶傳遞一個字符串,我使用 javascript 循環(huán)遍歷一個對象數(shù)組。這將找到一個字符并將其替換為正確的 html 實(shí)體。您可以在此處查看我正在使用的正則表達(dá)式代碼:https://regex101.com/r/WZh5tA/2    escapeCharacter: function(string){      var replaceChar = [        {reg : '&', replace: '&amp;'},        {reg : '"', replace: '&quot;'},        {reg : '£', replace: '&pound;'},        {reg : '€', replace: '&euro;'},        {reg : 'é', replace: '&eacute;'},        {reg : '–', replace: '&ndash;'},        {reg : '?', replace: '&reg;'},        {reg : '?', replace: '&trade;'},        {reg : '‘', replace: '&lsquo;'},        {reg : '’', replace: '&rsquo;'},        {reg : '“', replace: '&ldquo;'},        {reg : '”', replace: '&rdquo;'},        {reg : '#', replace: '&#35;'},        {reg : '?', replace: '&copy;'},        {reg : '@', replace: '&commat;'},        {reg : '$', replace: '&dollar;'},        {reg : '\\(', replace: '&#40;'},        {reg : '\\)', replace: '&#41;'},        {reg : '<', replace: '&lt;'},        {reg : '>', replace: '&gt;'},        {reg : '…', replace: '&hellip;'},        {reg : '-', replace: '&#45;'},        {reg : "'", replace: '&#39;'},        {reg : '\\*', replace: '&#42;'},        {reg : ',', replace: '&sbquo;'}    ];    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&gt; text'
查看完整描述

1 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個贊

您可以使用

s = s.replace(      
    new RegExp("(<[^<>]*>)|" + obj.reg.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "g"), 
          function ($0, $1) { return $1 ? $0 : obj.replace } );

筆記:

  • 你需要逃避obj.reg使用正則表達(dá)式表達(dá)之前,因此.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')需要

  • (<[^<>]*>)|備選的匹配和捕獲到組1級 <...>之前所需的比賽和在作為替換參數(shù)傳遞的回調(diào)方法的子串,還有一個檢查,如果所述第一組匹配。如果是,則整個匹配項(xiàng)按原樣返回,否則進(jìn)行替換。


查看完整回答
反對 回復(fù) 2021-06-18
  • 1 回答
  • 0 關(guān)注
  • 304 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號