我有一個js串...JS刪除不符合
var string = "Hi how are you <b>today</b>";
我現在有一個新的JS串...
var newstring = "are today";
某些話我想刪除所有來自var string
的文字與var newstring
不符。我還想保留與這些詞相關的標籤(如果有的話)。
Example Result:
are <b>today</b>
我有一個js串...JS刪除不符合
var string = "Hi how are you <b>today</b>";
我現在有一個新的JS串...
var newstring = "are today";
某些話我想刪除所有來自var string
的文字與var newstring
不符。我還想保留與這些詞相關的標籤(如果有的話)。
Example Result:
are <b>today</b>
有一些simpe辦法做這樣的事情,他們是否會爲你工作,取決於你打算用這個東西,但像這樣也許:
var string = "Hi how are you <b>today</b>",
newstring = "are today",
words = newstring.split(' ');
for (var i=0; i<words.length; i++) {
var reg = new RegExp(words[i], 'gi');
string = string.replace(reg, '');
}
console.log(string);
var string = "Hi how are you <b>today</b>",
newstring = "are today",
words= newstring.split(' ');
$.each(words, function(i, v) {
if(new RegExp(v, 'ig').test(string) && !new RegExp('<b>'+v+'</b>', 'ig').test(string)) {
string = string.replace(v,'');
}
});
console.log(string);
var source = "Hi how are you <b>today</b>",
pattern = "are today",
res = [];
pattern.split(/\s+/).forEach(function(word) {
source.split(/\s+/).forEach(function(sWord) {
if(~sWord.indexOf(word)) res.push(sWord);
});
});
console.log(res.join(' '));
使用'〜'+1,但這將匹配的東西雖然不是這個詞,像'你好嗎?你今天,你不餓嗎?'。即使它不是其中一個單詞,也不會匹配。當然,在同樣的情況下,我會吐出2個'are's:/ – Chad 2012-04-16 17:30:20
使用'〜'有什麼好處?我很好奇。 – 2012-04-16 18:53:38
var str = 'Hi how are you <b>today</b>',
words = ['are', 'today']; //or 'are today'.split(' '),
regex = new RegExp('(<[a-zA-Z]*>)?(' + words.join('|') + ')(</[a-zA-Z]*>)?', 'g');
console.log(regex, str.match(regex), str.match(regex).join(' '));
您將需要一個更復雜正則表達式來捕獲所有的HTML標籤。
你會想使用正則表達式,你會根據比較弦上飛建立,也將在perserving html標籤幫助但它可以是複雜的比簡單的任何其他html標籤。你可能需要逐字逐句將其分解,並檢查列表並查看是否可以解析出html。 – dennmat 2012-04-16 17:11:01
如果您希望保留html標籤,請確保您的測試字符串也包含所需的標籤。這樣做的一個好方法是使用html()jquery方法。然後就像使用lneetho的回答一樣簡單,因爲標籤將以字符串形式返回。 – Jlange 2012-04-16 17:12:44