Javascript正则表达式的帮助
Assistance with a regular expression Javascript
我试图实现这个正则表达式检查。(1个整数,3位数字)
有效:- 0.236 0.21 1.231 1.01
- 12.23
- 12321 0.21323
我希望只有1位后面跟着一个0-3位的小数
任何帮助都太好了。我试过了:^(([0-9]{1})?(?='.)[0-9]{0,3})|([0-9]{1})$
但是没有锁。
编辑:我应该补充说,我正在使用一个名为inputmask的JQuery插件。我希望输入掩码只接受我的要求。
要对jquery-inputmask
执行此操作,请使用
<input id="example2" data-inputmask-regex="/^'d{1}'.'d{0,3}$/" />
然后在JavaScript文件中添加
$(document).ready(function(){
$("#example2").inputmask("Regex");
});
下面是Regex分解
^
- Regex必须以这个表达式
'd{1}
- 0到9的精确1位
'.
-后接句号。重要的是要注意句号必须转义
'd{0,3}
-后面跟着0 ~ 3位数字
$
- Regex必须以
我测试了你所有的例子
我想要一个只有0-3位小数的整数。
通过"1个整数",我认为你是指一个数字,因为12
是一个整数。如果是这样:
'd'.'d{0,3}
匹配单个数字,后跟.
,后跟0到3个数字。如果您想进一步断言它与整个字符串匹配,请在两端添加锚:
^'d'.'d{0,3}$
请注意,您给出的规则允许1.
,这似乎不是您想要的。如果你没有,那么我们需要做一些更多的工作:
^'d(?:'.'d{1,3})?$
表示:1位数字可选后跟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>
相关文章:
- 需要正则表达式模式的帮助
- 需要您的帮助来获得一个简单的javascript正则表达式
- 需要帮助设计正则表达式来选择'|'和'|'如果第一个'|'后面跟着一个空格
- 需要Javascript正则表达式帮助
- 请帮助我处理正则表达式.JavaScript
- 有人可以帮助解释JavaScript中的这个正则表达式吗?
- Javascript正则表达式帮助,负面展望
- 正则表达式帮助 - 匹配列表中未列出的任何 URL 参数和值
- 正则表达式帮助拆分字符串
- JavaScript正则表达式帮助:匹配0或1次,但不捕获
- Javascript正则表达式,帮助我匹配
- 厚颜无耻的正则表达式帮助:子字符串或匹配字符串的数字部分
- Javascript:请提供正则表达式帮助
- 正则表达式-需要帮助获取字符串的特定部分
- JavaScript 正则表达式帮助 - 限制匹配项数
- JavaScript正则表达式帮助:验证电话号码,但不包括555个号码(匹配这个,但不匹配那个)
- 正则表达式在javascript中有帮助
- Javascript正则表达式的帮助
- 需要帮助的正则表达式
- 快速帮助正则表达式