我試圖實現這個正則表達式檢查。 (1個整數,3位數字)幫助正則表達式Javascript
有效:
- 0.236
- 0.21
- 1.231
- 1.01
無效:
- 12.23
- 0.21323
我想通過只用0-3小數位小數有隻有1位數的後續。
任何幫助將是偉大的。我試過這個: ^(([0-9]{1})?(?=\.)[0-9]{0,3})|([0-9]{1})$
但沒有鎖定。
編輯:我應該補充說我正在使用名爲inputmask的JQuery插件。我希望輸入掩碼只接受我的要求。
我試圖實現這個正則表達式檢查。 (1個整數,3位數字)幫助正則表達式Javascript
有效:
無效:
我想通過只用0-3小數位小數有隻有1位數的後續。
任何幫助將是偉大的。我試過這個: ^(([0-9]{1})?(?=\.)[0-9]{0,3})|([0-9]{1})$
但沒有鎖定。
編輯:我應該補充說我正在使用名爲inputmask的JQuery插件。我希望輸入掩碼只接受我的要求。
我想只有一個整數後跟一個小數只有0-3小數位。
「1個整數」我想你的意思是一個位,爲12
是一個整數。如果是這樣的:
\d\.\d{0,3}
匹配一個數字,後面接着.
加上零到三位數。如果您想進一步斷言,它的整個字符串匹配,加錨兩端:
^\d\.\d{0,3}$
請注意,你給的規則允許1.
,這似乎是你可能不希望。如果不這樣做,那麼我們需要做位更多的工作:
^\d(?:\.\d{1,3})?$
,上面寫着:一個數字可選後跟一個.
1-3位。它有「整個字符串」的錨點,如果你不需要它們,就把它們刪除。
活生生的例子使用最後一個:
var input = document.querySelector("input");
var rex = [
/\d\.\d{0,3}/,
/^\d\.\d{0,3}$/,
/^\d(?:\.\d{1,3})?$/
];
input.oninput = input.onpaste = input.onkeypress = updateDisplay;
function updateDisplay() {
rex.forEach(function(r, index) {
var display = document.getElementById("r" + index);
if (!input.value) {
display.innerHTML = "--";
} else if (input.value.match(r)) {
display.innerHTML = "valid";
} else {
display.innerHTML = "INVALID";
}
});
}
<input type="text">
<p><code>/\d\.\d{0,3}/</code> says: <span id="r0"></span></p>
<p><code>/^\d\.\d{0,3}$/</code> says: <span id="r1"></span></p>
<p><code>/^\d(?:\.\d{1,3})?$/</code> says: <span id="r2"></span></p>
謝謝。我已經嘗試了所有三個,但仍然不起作用。對不起,我應該提到我正在使用名爲「inputmask」的插件。我只想讓用戶輸入1位數字,10進制數字和0-3數字。 – user3407584
@ user3407584:我在第三個開頭有一個錯字。正則表達式肯定有效,請參閱現場示例。 –
你應該接受這個答案。幾分鐘後他擊敗了我。無論如何,我認爲它比我的要好。 –
要使用jquery-inputmask
做到這一點,用這個
<input id="example2" data-inputmask-regex="/^\d{1}\.\d{0,3}$/" />
然後在你的JavaScript文件,添加此
$(document).ready(function(){
$("#example2").inputmask("Regex");
});
這裏是正則表達式擊穿
^
- 從0完全1位到9
\.
- - 隨後一段正則表達式必須與此表達
\d{1}
啓動。需要注意的是週期必須進行轉義
\d{0,3}
- 由0至3位數
$
其次 - 正則表達式必須用這個表達
我對您的所有實例測試結束。
謝謝。我試着去註冊,但因爲我是新手,所以不會允許我這樣做。 :( – user3407584
@Tushar:這將匹配他「無效」例子的三分之二。 –
你的號碼會自己輸入。會有其他文字嗎?這些是有效的:'1.23','0.325','一些文本1.23'? – vol7ron
不要重命名問題以包含單詞「已解決」,請參閱[如何接受答案的工作?](http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-工作) – Quentin