Heim > Artikel > Web-Frontend > Matching zweier Strings in JavaScript
Bei der Arbeit ist ein Problem aufgetreten. Die Anforderung lautet: Jede Zeichenfolge enthält höchstens ein *, ? kann eine unendliche Anzahl von
* enthalten, die eine Zeichenfolge beliebiger Länge darstellen. Es stellt ein Zeichen
dar und erfordert zwei Konflikte
Verwenden Sie Javascript, um den Code wie folgt zu implementieren:
[javascript]
function checkMarchX()
{
var str1 = document.getElementById('str1').value;
var str2 = document.getElementById('str2').value;
var str1XPosition = str1.indexOf('*');
var str2XPosition = str2.indexOf('*');
if(str1XPosition!=-1 && str2XPosition!=-1)//两者都含有*
var position =. str1XPosition>str2XPosition?str2XPosition:str1XPosition;//success
if( position!=0)
{
var patbeforeStr1 = str1.substring(0,position);
var patbeforeStr2 = str2.substring(0,position); //然后对应后半部分进行测试
var str1XBackPosition = str1.length-str1XPosition-1;
var str2XBackPosition = str2.length-str2XPosition-1;
var backposition = str1XBackPosition>str2XBackPosition?str2XBackPosition:str1XBackPosition;
if (backposition==0)
{
warning(str1+'与'+str2+"冲突");
}
else
{
substring(str1.length-backposition,str1.length);
var patbackStr2 = str2.substring(str2.length-backposition,str2.length);
if(checkMarchQ(patbackStr1,patbackStr2))
{
+str2+"冲突");
}
}
{
//alert(str1+'与'+str2+"前半部分冲突");
var str1XBackPosition = str1.length-str1XPosition-1;
var str2XBackPosition = str2.length-str2XPosition-1;
var backposition = str1XBackPosition>str2XBackPosition?str2XBackPosition:str1XBackPosition;
if (backposition==0)
{
warning(str1+'与'+str2+"冲突");
}
else
{
var patbackStr1 = str1.substring(str1.length-backposition,str1.length);
var patbackStr2 = str2.substring(str2.length-backposition,str2.length);
if(checkMarchQ(patbackStr1,patbackStr2))
{
Alert(str1+'与'+str2+" );
}
}
}
else if((str1XPosition==-1 && str2XPosition!=-1 )||(str1XPosition!=-1 && str2XPosition==-1) )//有且只有一个字符串含有*
{
var strX =. str1XPosition==-1?str2:str1;//含有*的字符串
var strNoX = str1XPosition==-1? str1:str2;//不含*的字符串
if (strX.length-1
var position = strX.indexOf('*');
if(position==0)
{
//alert(str1+'与'+str2+"前半部分冲突");
var backposition = strX.length-position-1;
if (backposition==0)
{
warning(str1+'与'+str2+"冲突");
}
sonst
{
var patbackStr1 = str1.substring(str1.length-backposition,str1.length);
var patbackStr2 = str2.substring(str2.length-backposition,str2.length);
if(checkMarchQ(patbackStr1,patbackStr2))
{
+str2+"冲突");
}
}
. sonst {
var patbeforeStr1 = str1.substring(0,position);
var patbeforeStr2 = str2.substring(0,position);
if(checkMarchQ(patbeforeStr1,patbeforeStr2))
{
//alert(str1+'与'+str2+"前半部分冲突");
var backposition = strX.length-position-1;
if (backposition==0)
突");
}
var patbackStr1 = str1.substring(str1.length-backposition,str1.length);
var patbackStr2 = str2.substring(str2.length-backposition,str2.length);
if(checkMarchQ(patbackStr1,patbackStr2))
warning(str1+'与'+str2+"冲突");
}
}
~ +str2+"Konflikt");
if(str1.length= =str2.length)
{ if(str1.substr (i,1)!='?' && str2.substr( i,1)!='?')
1)
}
Überprüfen