JavaScript正则表达式测试不工作
我想检查输入文本(数量)是否在1-100之间,但正则表达式测试不起作用 这是我的JS代码JavaScript正则表达式测试不工作,javascript,regex,Javascript,Regex,我想检查输入文本(数量)是否在1-100之间,但正则表达式测试不起作用 这是我的JS代码 <script type="text/javascript" > console.log(document.getElementById("amount").value); // 222 var regex = /^(100)|[1-9]\d?$/; if(regex.test(document.getElementById("amount").value))
<script type="text/javascript" >
console.log(document.getElementById("amount").value); // 222
var regex = /^(100)|[1-9]\d?$/;
if(regex.test(document.getElementById("amount").value))
{
alert('validated')
}
else
alert('error')
</script>
console.log(document.getElementById(“amount”).value);//222
var regex=/^(100)|[1-9]\d?$/;
if(regex.test(document.getElementById(“amount”).value))
{
警报('已验证')
}
其他的
警报('错误')
DOMContentLoaded
事件回调中document.addEventListener('DOMContentLoaded', function () {
// Get the value & convert it into Number
var value = parseInt(document.getElementById('amount').value, 10);
// Value between 0 & 100
if (value > 0 && value <= 100) {
alert('Valid');
} else {
alert('Error');
}
});
document.addEventListener('DOMContentLoaded',函数(){
//获取值并将其转换为数字
var value=parseInt(document.getElementById('amount')。value,10);
//值介于0和100之间
如果(值>0&&value)
将代码包装在DOMContentLoaded
事件回调中
不要使用正则表达式。请使用比较运算符
代码:
document.addEventListener('DOMContentLoaded', function () {
// Get the value & convert it into Number
var value = parseInt(document.getElementById('amount').value, 10);
// Value between 0 & 100
if (value > 0 && value <= 100) {
alert('Valid');
} else {
alert('Error');
}
});
document.addEventListener('DOMContentLoaded',函数(){
//获取值并将其转换为数字
var value=parseInt(document.getElementById('amount')。value,10);
//值介于0和100之间
如果(value>0&&value如果您真的想使用正则表达式,这应该可以:
/^100$|^[1-9]\d?$/
它不允许使用eg09
,但这可能没问题。如果您真的想使用正则表达式,这应该可以:
/^100$|^[1-9]\d?$/
它不允许eg09
,但也许这没关系。使用parseInt()
函数或Number
构造函数来执行这样一个简单的验证就足够了:
<script type="text/javascript" >
var amount = Number(document.getElementById("amount").value); // 222
alert ((amount > 0 && amount <= 100)? 'Valid' : 'Invalid');
</script>
var amount=Number(document.getElementById(“amount”).value);//222
alert((amount>0&&amount使用parseInt()
函数或Number
构造函数执行这样一个简单的验证就足够了:
<script type="text/javascript" >
var amount = Number(document.getElementById("amount").value); // 222
alert ((amount > 0 && amount <= 100)? 'Valid' : 'Invalid');
</script>
var amount=Number(document.getElementById(“amount”).value);//222
警报((金额>0和金额<代码>
函数validateValue()
{
var金额=document.getElementById('testId')。值;
如果((isNaN(金额))){
document.getElementById(“errorId”).style.display=“”;
}
其他的
{
如果(金额>100){
document.getElementById(“errorId”).style.display=“”;
}
其他的
{
document.getElementById(“errorId”).style.display=“无”;
}
}
}
输入1到100:
不是一个有效的数额
函数validateValue()
{
var金额=document.getElementById('testId')。值;
如果((isNaN(金额))){
document.getElementById(“errorId”).style.display=“”;
}
其他的
{
如果(金额>100){
document.getElementById(“errorId”).style.display=“”;
}
其他的
{
document.getElementById(“errorId”).style.display=“无”;
}
}
}
输入1到100:
不是一个有效的数额
您必须将锚点之间的内容放入(非捕获)组,否则锚点是备选方案的一部分。将值转换为数字并进行正常比较,正则表达式可能不适合您的场景。您必须将锚点之间的内容放入(非捕获)组中组,否则锚点是替换的一部分。将值转换为数字并进行正常比较,正则表达式可能不适合您的场景。不起作用,未捕获的TypeError:无法读取Null的属性“show”该错误与此正则表达式无关,但如果您实际想要的只是转换为整数并与100进行比较,不起作用,未捕获的TypeError:无法读取Null的属性“show”该错误与此正则表达式无关,但如果您真正想要的只是转换为整数并与100进行比较,那么您最好这样做。这实际上并没有执行与原始要求相同的检查。Fo例如,它将允许-100和0,并且它将对“2sdf”和“0x12”等条目发出“有效”警报。但几乎可以肯定的是,它比使用正则表达式更接近您想要的。@Chris Lear,是的!我自己做的,当然我删除了许多代码行以使其简单。我只是想在JS中找到一个好方法。谢谢!这实际上并没有做与原始要求相同的检查。例如,它将允许-100和0,并且它将发出警报对于“2sdf”和“0x12”等条目,“有效”"。但几乎可以肯定的是,这比使用正则表达式更接近您想要的。@Chris Lear,是的!我自己做的,当然我删除了很多行代码来简化。我只是想在JS中找到一个好方法。谢谢!这个答案还忘了检查条目是否大于0,也不检查整数。这可能是正确的。。。这有点难以确定。修复。谢谢。此外,也不检查整数-不需要检查,如果它不是整数-它是无效的。我的意思是,这将表明23.56是有效的,而原始正则表达式会失败。这不是正则表达式解决方案。OP没有指定所有的“理想”条件。如果你认为你的正则表达式是最好的-让OP接受你的回答。我不认为我的正则表达式是最好的。我认为被接受的答案是最好的,正如它发生的那样。我只是指出了潜在的陷阱。我不认为OP做了很多检查。如果结果证明小数是可以接受的,那么你的答案可能会更好(特别是如果实际代码以后使用Number()
或parseInt()
的输出,而不仅仅是将其用作验证检查)。这个答案也忘了检查条目是否大于0,也不检查整数。这可能是正确的…这有点难以确定。修复。谢谢。此外,也不检查整数-不需要检查,如果不是整数-它无效。我的意思是,这将说明23.56是有效的,而原始正则表达式可能会失败。这不是正则表达式解决方案。OP没有指定所有“理想”条件。如果你认为