ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript での 2 つの文字列のマッチング

JavaScript での 2 つの文字列のマッチング

高洛峰
高洛峰オリジナル
2016-11-26 14:42:171206ブラウズ

仕事中に問題が発生しました。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)}}

は上記のプログラムではありません入力の正当性を検証します



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。