35 回答

TA貢獻2036條經(jīng)驗 獲得超8個贊
大神, 你這得到的結(jié)構(gòu)是Where there is great love, <span style="background-color:yellow;><span style="color: #0000ff; font-weight: bold;">there</span> are always</span> miracles. ? 只有there被高亮了。 我的需求是words 數(shù)組里的都得高亮。、
多謝了。 能幫忙繼續(xù)寫寫demo嗎?

TA貢獻1829條經(jīng)驗 獲得超13個贊
@GEEKc: 我用正則是玩不轉(zhuǎn)這個的,那就只能一層層的去解析,然后分別處理了。我的方法太復(fù)雜了,先嘗試下他們提供的正則匹配嘛吧。。

TA貢獻1786條經(jīng)驗 獲得超13個贊
@GEEKc: 需要將原本的高亮干掉? 如果不需要的話,直接取出result = innerHTML.replace(/xxx/gi, '高亮之后的html代碼'); ?然后再賦值回去。。

TA貢獻1877條經(jīng)驗 獲得超6個贊
對, 就是關(guān)鍵字(可能是一個句子也可能只是一個單詞)高亮加黃色背景。但是原始的字符串中可能某些單詞已經(jīng)被做其他高亮處理(加粗加藍色), 是需要用正則替換, 但是這個正則不會寫。?
幻老師可以幫忙寫一個小的demo嗎? 多謝了。

TA貢獻2051條經(jīng)驗 獲得超10個贊
@Yu: 這個background-color:yellow;font-we;ight:inherit;是寫錯了還是正則的語法???
算了, 不糾結(jié)了, 答案已經(jīng)有了。 謝謝Yu老師悉心指導(dǎo)。

TA貢獻1802條經(jīng)驗 獲得超6個贊
@GEEKc:?var tem ?= sourceText .match(/(<span[^>]*>)*\s*there\s*(<\/span>)*\s*(<span[^>]*>)*\s*are\s*(<\/span>)*\s*(<span[^>]*>)*\s*always\s*(<\/span>])*/g);
for(tem){
sourceText=sourceText .replace(tem[i],<span>tem[i]</span>)
}
console.log(sourceText)

TA貢獻1794條經(jīng)驗 獲得超8個贊
@司幸: 對,就是可能的情況是
<span style="color: #0000ff; font-weight: bold;">there</span> <span style="color: #0000ff; font-weight: bold;">
are</span> always 替換成 <span style="background-color:yellow;font-we;ight:inherit;"><span style="color: #0000ff; font-weight: bold;">there</span> <span style="color: #0000ff; font-weight: bold;">are</span> always</span>
也可能是there <span style="color: #0000ff; font-weight: bold;">are</span> always 替換成 <span style="background-color:yellow;font-we;ight:inherit;">there <span style="color: #0000ff; font-weight: bold;">are</span> always</span>
還可能是there are always 替換成 <span style="background-color:yellow;font-we;ight:inherit;">there are always</span>
也就是每個單詞都有可能會被<span style="color: #0000ff; font-weight: bold;"></span>這么一組span標簽所標注。我們需要從原始字符串中找到一串指定字符串加上<span style="background-color:yellow;font-we;ight:inherit;"></span>
多謝司幸老師, 有勞了 :[

TA貢獻1796條經(jīng)驗 獲得超4個贊
@GEEKc: 了解了,你的意思是 <span><span><span>there</span></span> are</span>aways 這種情況也是會出現(xiàn)的嗎。替換后<span><span><span><span>there</span></span> are</span>aways </span>?

TA貢獻1906條經(jīng)驗 獲得超10個贊
@司幸: 因為sourceText在這之前可能就已經(jīng)有span標簽存在字符串里面了,如果把這些處理掉的話,是能匹配到there are always,也能追加進去,但是之前的標簽就沒了。這里需要保存原來的標簽。
添加回答
舉報