<pre class="code">
/**
 * マイナス符号付小数点チェックを行います。
 * ・パターンマッチ 0～9、&quot;-&quot;、&quot;.&quot;
 * ・パターンマッチ &quot;-&quot;,&quot;.&quot;のみはＮＧ
 * ・マイナス符号の数 0 or 1
 * ・小数点の数 0 or 1
 * ・整数部の桁数チェック
 * ・小数部の桁数チェック
 *
 * 例）整数部 3, 小数部 2の場合
 * -123 --&gt; OK
 * 123 --&gt; OK
 * 123.45 --&gt; OK
 * -123.45 --&gt; OK
 * 1.2 --&gt; OK
 * - --&gt; NG
 * 123- --&gt; NG
 * --123 --&gt; NG
 * 1234.56 --&gt; NG
 * 123.456 --&gt; NG
 * . --&gt; NG
 * .123 --&gt; NG
 * 123. --&gt; NG
 * -. --&gt; NG
 *
 * @param argValue チェック対象文字列
 * @param argIntKetasu 整数部の入力可能桁数
 * @param argDecimalKetasu 小数部の入力可能桁数
 * @return チェックＯＫの場合はtrue、
 * チェックＮＧの場合はfalse
 */
function isMinusDecimal(argValue, argIntKetasu, argDecimalKetasu)
{
    var minusFlg = false;
    var decFlg = false;
    if (argValue.match(/[^0-9|^&#092;-|^.]/g))
    {
        // パターンマッチ 0～9,&quot;-&quot;,&quot;.&quot;以外はＮＧ
        return false;
    }
    if (argValue.match(/[^&#092;-|^.]/g))
    {
    }
    else
    {
        // パターンマッチ &quot;-&quot;,&quot;.&quot;のみはＮＧ
        return false;
    }

    // 小数点の数を取得する
    var count = 0;
    for (var i = 0; i &lt; argValue.length; i++)
    {
        if (argValue.charAt(i) == &quot;.&quot;)
        {
            decFlg = true; count++;
        }
    }
    if (2 &lt;= count)
    {
        // &quot;.&quot;が２つ以上入力されている場合はＮＧ
        return false;
    }

    // &quot;-&quot;の入力個数を取得する
    count = 0;
    for (i = 0; i &lt; argValue.length; i++)
    {
        if (argValue.charAt(i) == &quot;-&quot;)
        {
            minusFlg = true;
            count++;
        }
    }
    if (2 &lt;= count || (count == 1 &amp;&amp; argValue.charAt(0) != &quot;-&quot;))
    {
        // &quot;-&quot;が２つ以上入力されている場合はＮＧ
        // &quot;-&quot;が入力されていて、かつ先頭に&quot;-&quot;がない場合はＮＧ
        return false;
    }

    // 小数点以下のチェック
    if (decFlg)
    {
        // 小数点以下の桁数チェック
        var idx = argValue.lastIndexOf(&quot;.&quot;);
        var decimalPart = argValue.substring(idx);

        // 小数点以下の桁数を取得する
        var length = decimalPart.length - 1;
        if (length == 0)
        {
            // 小数点以下の入力がない場合はＮＧ
            return false;
        }
        if (argDecimalKetasu &lt; length)
        {
            // 小数点以下の桁数がオーバーしている場合はＮＧ
            return false;
        }
    }

    // 整数部の桁数チェック
    var intPart = &quot;&quot;;
    length = 0;
    if (decFlg)
    {
        // 小数点が入力された場合
        intPart = argValue.substring(0, argValue.indexOf(&quot;.&quot;));
    }
    else
    {
        intPart = argValue;
    }
    length = intPart.length;
    if (minusFlg)
    {
        // マイナスが入力された場合は-1
        length--;
    }
    if (argIntKetasu &lt; length)
    {
        // 整数の桁数がオーバーしている場合はＮＧ
        return false;
    }
    return true;
}
</pre>
<p>&nbsp;</p>