javaScriptは特定の特殊な組み合わせの文字列しか入力できないことを検証します.


仕事のために、今日同僚に下記のようなフロントJs検証コードを書いてもらいました.
1)数字、コンマ、「-」の3つの記号で構成されています.
2)数字の最初と最後で.
3)「-」は前後が数字でなければなりません.

<script type="text/javaScript">
/*********
*only be some special char;
*/
function onlySomeChar(inputStr)
{
	if((inputStr.match(/^\d.*\d$/g) && (inputStr.search(/[^0-9,-]/g)==-1)) || inputStr.match(/^\d*$/))
	{
		for(var i =0;i<inputStr.toString().length;i++)
		{
			if(inputStr.charAt(i)=="-")
			{
				if(isInt(inputStr.charAt(i-1))==false || isInt(inputStr.charAt(i+1))==false)
					return false;
			}
		}
		return  true;
	}
	return false;
}

/**
*if Integer  return true  
*else return false;
*/
function isInt(str)
{
	if (str.search(/[^0-9]/g)!=-1)
	{
		return false;
	}
	return true;
}

//the function of test
function test(strIn)
{
	if(onlySomeChar(strIn)==false)
	{
		alert(0);
	}
	else
	{
		alert(1);
	}

}
</script>
<input type="text"  id="test" onchange="test(this.value)">