我想控制輸入字段使用jQuery以前我只有數字,可以使用$(this).autoNumeric()
,現在我已經到處需要改變輸入字段的形式'數字破折號「。輸入文本字段,只接受數字破折號
我已經嘗試過幾個鏈接,從這個網站以及其他沒有任何成功, 我只是初學者的用戶界面,請幫助我。
我想控制輸入字段使用jQuery以前我只有數字,可以使用$(this).autoNumeric()
,現在我已經到處需要改變輸入字段的形式'數字破折號「。輸入文本字段,只接受數字破折號
我已經嘗試過幾個鏈接,從這個網站以及其他沒有任何成功, 我只是初學者的用戶界面,請幫助我。
您將需要使用正則表達式。我不會完全依賴HTML5輸入蒙版。
/^\d+(-\d+)*$/
如果沒有更強的約束條件就足夠了。
$("#myfield").change(function(){
var isValid = $(this).val().match(/^\d+(-\d+)*$/);
if(!isValid){
alert('only numbers and hyphesn please');
return false;
}
});
簡單的HTML:
<input id="myfield">
演示:http://jsbin.com/jeziqifebu/1/edit
UPDATE:
用戶想要numberstrings,即3.4.5不僅僅是十進制數字。
$("#myfield").change(function(){
var pattern = /^\d+(\.\d{1,2})?(\.\d{1,2})?(-\d+(\.\d{1,2})?(\.\d{1,2})?)?$/;
var isValid = $(this).val().match(pattern);
if(!isValid){
alert('only numbers or valid range separated by hyphens please');
return false;
}
});
這將需要
2
2-3
2.3
2.3-4
2.3.4-5
2.3.4-5.6
2.3.4-5.6.7
該解決方案犯規讓你輸入任何東西,但數字和一個破折號:JS FIDDLE
<input onkeypress="return isNumberKey(event);">
var dashCount = 0;
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode == 45) {
dashCount++;
}
if ((charCode > 47 && charCode <58) || (charCode == 45 && dashCount < 2))
{
return true;
}
return false;
}
我的意思是3.4.0-54.0,但允許其他字符了。 – Atiq
@Atiq,我已經更新了我的答案 – briansol
我正在使用通過類,但它不工作,做這樣的事情,它允許所有的字符進入,我想限制 '$('。left_length' ).change(function(){ var pattern = /^\d+(\.\d{1,2})?(\.\d{1,2})?(-\d+(\。\ d {如果(!isValid){ alert(012)}?(\。\ d {1,2})?)$ $;; var isValid = $(this).val()。match(pattern); (「只有數字或有效範圍內用連字符隔開請」); 將返回false;} });' – Atiq