如何在文本框中限制多個負號。下面的代碼不允許我輸入單個負號。
我的正則運算式代碼 -
公共金額格式 =“ ^(\\ ?\\-? *[0-9] )([,0-9]*)([0-9])*$”;
錯誤 -
如果我在變數中寫入正則運算式,則不允許輸入 (-) 符號。
public AmountFormat ="((^|, )(-|-?[0-9]\d*(\.\d )?)) $"; //not working
return /((^|, )(-|-?[0-9]\d*(\.\d )?)) $/.test(input);//working
uj5u.com熱心網友回復:
嘗試
public AmountFormat =/((^|, )(-|-?[0-9]\\d [,.]?\\d*$)) $/;
細節:
const isValid = (input) => {
const AmountFormat = /((^|, )(-|-?[0-9]\\d [,.]?\\d*$)) $/;
return AmountFormat.test(input);
}
console.warn(isValid('100'));
// true
console.warn(isValid('-100.0'));
// true
console.warn(isValid('--100'));
// false
console.warn(isValid('-'));
// true
uj5u.com熱心網友回復:
問題在于,[0-9] 您需要在有效輸入中輸入一個數字,因此無法僅從-.
我不允許符號后面有空格——這不是標準的。
你可以使用/^-?\d*(\d\.\d*)?$/. 如果逗號用作小數點分隔符,則將其替換\.為,.
這是一個可運行的代碼段:
const regex = /^-?\d*(\d\.\d*)?$/
let input = document.querySelector("input");
input.addEventListener("input", validate);
let previous = input.value;
function validate() {
if (!regex.test(input.value)) {
input.value = previous;
} else {
previous = input.value;
}
}
<input>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/401060.html
標籤:javascript 正则表达式 打字稿
下一篇:用破折號替換特定的空格
