我在 Titanium 中有以下代码来检查用户输入是否为非数字:
textBox.addEventListener('change', function (e) {
var patt = new RegExp('^\d+(\.\d{1,2})?$','gi');
if (e.value.match(patt) != null) {
//insert action here
}
});
我个人希望在用户尝试输入非十进制字符时删除非十进制字符。但是,为了做到这一点,我需要使用 replace(inversePatt, "")
。我想知道,如何获得正则表达式的反函数?
最佳答案
要删除非十进制字符,您应该能够匹配每个:
[^\.\d]
小组返回。
([^.\d] 应该有效 - 这里的点不需要转义)
括号内的克拉反转。 它的基本意思是“不是一个点或一个数字”。
查看:
编辑: 我想这就是你的答案:
Restricting input to textbox: allowing only numbers and decimal point
编辑 2: 您还可以使用这个:
var success = /^\d*\.?\d{0,2}$/.test(input);
按照:
Limiting input field to one decimal point and two decimal places
您还可以要求小数点前有一个数字,如下所示:
var success = /^\d+\.?\d{0,2}$/.test(input); // uses + instead of *
关于javascript - 正则表达式的逆 (JavaScript/Titanium),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19663453/