2016-09-16 17 views
1

RegExを期待通りに使用している特定の入力を検証しています。私はユーザーがそれを追加しない場合、小数点の前に0を加えるところに追加を追加したいと思います。例えば10進数の形式を設定します

、それを行うにはどのように

.50 to 0.50 
-.50 to -0.50 

コード:[0-9]+[0-9]*

$(document).ready(function() { 
 
    $('#btnval').click(function() { 
 
    var floatRegex = new RegExp(/^-?[0-9]+([\,|\.]{0,1}[0-9]{2}){0,1}$/); 
 
    var currentSetTextBoxValue = $('#txtval').val(); 
 
    //alert(currentSetTextBoxValue); 
 
    var validateInput = floatRegex.test(currentSetTextBoxValue); 
 
    alert(validateInput); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text" id="txtval" /> 
 
<input type="button" value="Get textbox Value" id="btnval" />

+1

。 – Barmar

+0

FYI、 '{0,1}'は '?'に単純化することができます。これは何かがオプションであることを意味します。 – Barmar

+0

jqueryとしてのjqueryへの参照が削除されたのは、clickイベント/ valに対してのみ使用され、質問には関係しません。 –

答えて

1

変更、それは代わりに、少なくとも一つのrequireingのゼロ数字を可能にするように。

$(document).ready(function() { 
 
    $('#btnval').click(function() { 
 
    var floatRegex = new RegExp(/^-?[0-9]*([\,|\.]{0,1}[0-9]{2}){0,1}$/); 
 
    var currentSetTextBoxValue = $('#txtval').val(); 
 
    //alert(currentSetTextBoxValue); 
 
    var validateInput = floatRegex.test(currentSetTextBoxValue); 
 
    alert(validateInput); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text" id="txtval" /> 
 
<input type="button" value="Get textbox Value" id="btnval" />

0

あなたは後でそれを変換する必要がある場合は、このような値を修正することができます。

if(currentSetTextBoxValue.indexOf('.') === 0){ 
    currentSetTextBoxValue = '0' + currentSetTextBoxValue; 
} 
if(currentSetTextBoxValue.indexOf('.') === 1 && currentSetTextBoxValue.indexOf('-') === 0){ 
    currentSetTextBoxValue = '-0.' + currentSetTextBoxValue.split('.')[1]; 
} 

https://jsfiddle.net/str59woa/3/

0

あなたは正規表現を使用して入力を置き換えることができます!この正規表現が探します。または - 。文字列の冒頭で0または-0に置き換えられます。それが見つかったものによっては、文字列と一致しない場合は同じになります。 toFixed(2) ``生成することを通常フォーマットだ

$(document).ready(function() { 
 
    $('#btnval').click(function() { 
 
    var floatRegex = new RegExp(/^-?[0-9]+([\,|\.]{0,1}[0-9]{2}){0,1}$/); 
 
    var currentSetTextBoxValue = $('#txtval').val().replace(/^(\-)?\./, "$10."); 
 
    //alert(currentSetTextBoxValue); 
 
    var validateInput = floatRegex.test(currentSetTextBoxValue); 
 
    alert(validateInput); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text" id="txtval" /> 
 
<input type="button" value="Get textbox Value" id="btnval" />

https://jsfiddle.net/punsm9o0/1/

関連する問題