1
我已經在Javascript以下字符串:我有一些Javascript來突出顯示該字符串的匹配單詞的陣列的份數(基於搜索來自用戶的輸入)高亮一個串內匹配的單詞
Smith, Dan
。因此,如果用戶鍵入「史密斯d」,那麼我的陣列和預期產出將包括:
string = "Smith, Dan"
word[0] = "smith"
word[1] = "d"
output: <em>Smith</em>, <em>D</em>an
然而,當第二個字包含在第一字中,這屬於過去。因此,例如,如果字符串「史密斯,海倫」,那麼會發生以下情況:
string = "Smith, Helen"
word[0] = "smith"
word[1] = "h"
output: <em>Smit<em>h</em></em>, <em>H</em>elen
我使用正則表達式做替換,因爲沒有保持原文的情況下相同的要求(因此,如果用戶鍵入「史密斯」,我仍然得到「史密斯」返回)。
這裏是我的代碼:
var output = "Smith, Helen";
var arText = new Array();
arText[0] = "smith";
arText[1] = "h";
for (var iw = 0; iw < arText.length; iw++) {
var term = arText[iw];
var re = new RegExp('(' + term + ')', 'gi');
output = output.replace(re, '<em>$1</em>');
}
任何人都可以提出,使其忽略的話這已經是EM標籤內我如何修改呢?我對上面的代碼所需的輸出是:
<em>Smith</em>, <em>H</em>elen