最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中兩個(gè)字符串的匹配

 更新時(shí)間:2016年06月08日 10:05:29   作者:meaijojo  
本文分享JavaScript中兩個(gè)字符串的匹配的一個(gè)實(shí)例代碼,希望能給大家做一個(gè)參考。

工作中遇到一個(gè)問(wèn)題,兩個(gè)字符串匹配,要求:每個(gè)字符串中最多含有一個(gè)*,?可以無(wú)限多個(gè)

*代表一個(gè)任意長(zhǎng)度的字符串,而?則代表一個(gè)字符

要求可以提示出兩個(gè)沖突

復(fù)制代碼 代碼如下:
<input type="text" id="str1"><br>
<input type="text" id="str2"><br>
<input type="button" onclick="checkMarchX()" value="CHECK">

用JavaScript實(shí)現(xiàn)代碼如下:

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);
			if(checkMarchQ(patbeforeStr1,patbeforeStr2))
			{
				//alert(str1+'與'+str2+"前半部分沖突");
				//然后對(duì)應(yīng)后半部分進(jìn)行測(cè)試
				var str1XBackPosition = str1.length-str1XPosition-1;
				var str2XBackPosition = str2.length-str2XPosition-1;
				var backposition = str1XBackPosition>str2XBackPosition?str2XBackPosition:str1XBackPosition;
				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))
					{
						alert(str1+'與'+str2+"沖突");
					}
				}
			}
		}
		else
		{
			//alert(str1+'與'+str2+"前半部分沖突");
			var str1XBackPosition = str1.length-str1XPosition-1;
			var str2XBackPosition = str2.length-str2XPosition-1;
			var backposition = str1XBackPosition>str2XBackPosition?str2XBackPosition:str1XBackPosition;
			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))
				{
					alert(str1+'與'+str2+"沖突");
				}
			}
		}
	}
	else if((str1XPosition==-1 && str2XPosition!=-1)||(str1XPosition!=-1 && str2XPosition==-1))//有且只有一個(gè)字符串含有*
	{
		var strX = str1XPosition==-1?str2:str1;//含有*的字符串
		var strNoX = str1XPosition==-1?str1:str2;//不含*的字符串
		if (strX.length-1<strNoX.length)
		{
			var position = 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))
					{
						alert(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)
					{
						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))
						{
							alert(str1+'與'+str2+"沖突");
						}
					}
				}
			}
		}
	}
	else
	{
		if(checkMarchQ(str1,str2))
		{
			alert(str1+'與'+str2+"沖突");
		}
	}
}
function checkMarchQ(str1,str2)
{
	var flagque = false;
	if(str1.length==str2.length)
	{
	  //長(zhǎng)度相同才有可能沖突
		for (var i=0 ;i<str1.length ;i++ )
		{
			if(str1.substr(i,1)!='?' && str2.substr(i,1)!='?')
			{
				if(str1.substr(i,1)!=str2.substr(i,1))
				{
					flagque = false;//表示不沖突
					break;
				}
				else
				{
					flagque = true;//表示沖突
				}
			}
		}
	}
	return flagque;
}

其中*最起碼為一個(gè)字符,以上程序并沒(méi)有對(duì)輸入的合法性進(jìn)行驗(yàn)證

查看更多JavaScript的語(yǔ)法,大家可以關(guān)注:《JavaScript 參考教程》、《JavaScript代碼風(fēng)格指南》,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序自定義多列選擇器使用詳解

    微信小程序自定義多列選擇器使用詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義多列選擇器使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • JS代碼如何獲取map的key

    JS代碼如何獲取map的key

    這篇文章主要介紹了JS代碼如何獲取map的key,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • js實(shí)現(xiàn)微信/QQ直接跳轉(zhuǎn)到支付寶APP打開(kāi)口令領(lǐng)紅包功能

    js實(shí)現(xiàn)微信/QQ直接跳轉(zhuǎn)到支付寶APP打開(kāi)口令領(lǐng)紅包功能

    最近支付寶的領(lǐng)紅包可真是刷爆了各個(gè)微信群啊,滿群都是支付寶口令,可是這樣推廣很麻煩,下面小編給大家?guī)?lái)了js實(shí)現(xiàn)微信/QQ直接跳轉(zhuǎn)到支付寶APP打開(kāi)口令領(lǐng)紅包功能,需要的朋友參考下
    2018-01-01
  • JavaScript實(shí)現(xiàn)數(shù)字前補(bǔ)“0”的五種方法示例

    JavaScript實(shí)現(xiàn)數(shù)字前補(bǔ)“0”的五種方法示例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)字前補(bǔ)“0”的五種方法,結(jié)合具體實(shí)例形式分析了javascript數(shù)字前補(bǔ)0的相關(guān)操作技巧,涉及javascript字符串遍歷、迭代、截取、構(gòu)造等操作,需要的朋友可以參考下
    2019-01-01
  • js+canvas繪制圖形驗(yàn)證碼

    js+canvas繪制圖形驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了js+canvas繪制圖形驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • javascript中獲取元素標(biāo)簽中間的內(nèi)容的實(shí)現(xiàn)方法

    javascript中獲取元素標(biāo)簽中間的內(nèi)容的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇javascript中獲取元素標(biāo)簽中間的內(nèi)容的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • 一文概述ES7~12的語(yǔ)法及其相關(guān)使用規(guī)則

    一文概述ES7~12的語(yǔ)法及其相關(guān)使用規(guī)則

    隨著JavaScript這門(mén)語(yǔ)言越來(lái)越流行,使得JavaScript這門(mén)語(yǔ)言越來(lái)越完善,這篇文章主要介紹了一文概述ES7~12的語(yǔ)法及其相關(guān)使用規(guī)則,需要的朋友可以參考下
    2023-01-01
  • JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)

    JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)

    JavaScript提供了幾種常用的彈窗方法,用于與用戶進(jìn)行交互或顯示提示消息,這篇文章主要給大家介紹了關(guān)于JavaScript中常用的3種彈窗的相關(guān)資料,分別包括警告框、確認(rèn)框、提示框,需要的朋友可以參考下
    2023-09-09
  • JavaScript this綁定與this指向問(wèn)題的解析

    JavaScript this綁定與this指向問(wèn)題的解析

    本文主要介紹了JavaScript this綁定與this指向問(wèn)題的解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • javascript感應(yīng)鼠標(biāo)圖片透明度顯示的方法

    javascript感應(yīng)鼠標(biāo)圖片透明度顯示的方法

    這篇文章主要介紹了javascript感應(yīng)鼠標(biāo)圖片透明度顯示的方法,涉及javascript針對(duì)鼠標(biāo)事件及圖片透明度操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02

最新評(píng)論

江津市| 林西县| 寻乌县| 青冈县| 叶城县| 拜泉县| 郯城县| 罗平县| 通化县| 汝州市| 北辰区| 长汀县| 万山特区| 阜宁县| 清水河县| 黄浦区| 土默特左旗| 理塘县| 日喀则市| 上饶市| 小金县| 鹰潭市| 长丰县| 中山市| 东乌珠穆沁旗| 时尚| 弥勒县| 佛山市| 林甸县| 新建县| 上思县| 岳普湖县| 鹿泉市| 安宁市| 新昌县| 灌云县| 石阡县| 扶风县| 惠水县| 武平县| 滦南县|