ホームページ > 記事 > ウェブフロントエンド > JavaScript での 2 つの文字列のマッチング
仕事中に問題が発生しました。2 つの文字列が一致しています。要件は、各文字列に * を 1 つまで含めることができます
* は任意の長さの文字列を表し、? は 1 つの文字を表します
2 つの競合
JavaScript を使用して次のようにコードを実装します:
[javascript]
function checkMarchX()
Of(' *');
var str2XPosition = str2.indexOf('*'); 2XPosition?str2XPosition ; (0,position); ))
var str1XBackPosition = str1.length- str1XPosition-1;
var str2XBackPosition = str2.length-str2XPosition-1; var backposition = str1XBackPosition>str2XBackPosition:str1XBackPosition; PatbackStr1 = str1.sub文字列 (Str1.length-Backposition, Str1 .length);
VAR PATBACKSTR2 = Str2.substring (str2.length-backposition, str2.length); C If (CheckMarchq (PatBackstr1, PatBackstr2))
{
アラート (str1+' および '+str2+"conflict"); //alert(str1+'与'+str2+"前半部分冲突");
var str1XBackPosition = str1.length-str1XPosition-1;
var str2XBackPosition = str2.length-str2XPosition-1;
var backposition = str1XBackPosition>str2XBackPosition?str2XBackPosition:str1XBackPosition;
if (backposition==0)
{
alter(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
varposition = strX.indexOf('*');
if(position==0)
{
//alert(str1+'与'+str2+"前半部分冲突");
var backposition = strX.length-position-1;
if (backposition==0)
{
alert(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))
{
aler(str1+'与'+str2+"冲突");
}
}
}
else
{
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)
{
aler(str1+'与'+str2+"冲突");
}} else
var patbackStr2 = str2.substring(str2.length-backposition,str2.length);
if(checkMarchQ(patbackStr1,patbackStr2))
{
アラート(str 1+'与'+str2+"冲突");
}
} if(checkmarchq(str1、str2))
(str1、str2){
var flagque = false; (var i = 0; str1.length; i ++)str(i、1)!= str2(i、1)}}
は上記のプログラムではありません入力の正当性を検証します