2017-06-28 105 views
2

下面的代碼是我的問題的最小表示。應該做些什麼才能使if條件成立,以便打印IP地址匹配!如何比較2個具有相似字符的字符串?

我知道這兩個字符串的編碼存在問題。我正在尋找一個答案,將兩個字符串轉換爲通過if條件的統一編碼。

var ip1="127.0.0.1"; 
 
var ip2="127․0․0․1"; //127%u20240%u20240%u20241 
 
if(ip1 === ip2){ 
 
\t console.log("IP Addresses match!"); 
 
}else{ 
 
\t console.log("IP Addresses do not match!"); 
 
}

+4

又怎會不匹配? – epascarello

+0

忘記在var ip2上使用分號 –

+11

''。' !=='。'',擺脫那個unicode時期的角色。 –

回答

0

基於對意見的討論中,我發佈這個答案,它使用在「NFKD」模式正常化的功能。

var ip1="127.0.0.1"; 
 
var ip2="127․0․0․1"; //127%u20240%u20240%u20241 
 
if(ip1.normalize("NFKD") === ip2.normalize("NFKD")){ 
 
\t console.log("IP Addresses match!"); 
 
}else{ 
 
\t console.log("IP Addresses do not match!"); 
 
}

0

您可以用點替代非數字字符。

var ip1 = "127.0.0.1", 
 
    ip2 = "127․0․0․1"; 
 
    
 
ip1 = ip1.replace(/\D+/g, '.'); 
 
ip2 = ip2.replace(/\D+/g, '.'); 
 

 
if (ip1 === ip2){ 
 
    console.log("IP Addresses match!"); 
 
} else { 
 
    console.log("IP Addresses do not match!"); 
 
}