2017-03-16 45 views
0

的比較,並刪除部分我有兩個字符串說,例如

str1 = "The first two have explicit values, but"; 
str2 = "first two have explicit values, but disabled is empty"; 

我需要比較兩個字符串,並拿出部分「前兩個有明確的價值觀,但」

我試着使用'匹配',但它返回空值。

有什麼辦法可以用javascript或jQuery來完成這個任務嗎?

+0

添加你在OP – guradio

+2

嘗試*我嘗試使用「匹配」,但它返回我空值* - 請與我們分享這個代碼,以澄清您的問題。另請參閱[查找一組字符串中最長的公共起始子字符串](http://stackoverflow.com/questions/1916218/find-the-longest-common-starting-substring-in-a-set-of-strings )。 –

+0

是否刪除重複句子的任何部分? – Scriptable

回答

-3

在字符串中使用replace

var match = 'first two have explicit values, but '; 
var str1 = 'the first two have explicit values, but'; 
var str2 = 'first two have explicit values, but disabled is empty'; 

str1.replace(match, '') 
// returns 'the first two have explicit values, but' 

str2.replace(match, '') 
// returns 'disabled is empty' 

注意,如果有字符串中的首都,你將不得不「正常化」他們,這就是爲什麼在第一次檢查實際上返回原始的字符串(因爲沒有匹配)。我建議在這個字符串上使用toLowerCase

+0

你是如何派生'match'的? – 31piy

+0

我從我瞭解OP要搜索的內容中得出它 – developius

2

你可以使用一個簡單的循環遍歷單詞和其他字符組合數組。

var str1 = "The first two have explicit values, but", 
 
    str2 = "first two have explicit values, but disabled is empty"; 
 

 
// split two string by word boundary 
 
var arr1 = str1.split(/\b/), 
 
    arr2 = str2.split(/\b/); 
 

 
// initialize variable for result 
 
var str = ''; 
 

 
// iterate over the split array 
 
for (var i = 0; i < arr1.length; i++) { 
 
    // check current word includes in the array and check 
 
    // the combined word is in string, then concate with str 
 
    if (arr2.includes(arr1[i]) && str2.indexOf(str + arr1[i]) > -1) 
 
    str += arr1[i]; 
 
    // if string doesn't match and result length is greater 
 
    // than 0 then break the loop 
 
    else if (str.trim()) 
 
    break; 
 
} 
 

 
console.log(str.trim());