Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式测试不工作_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式测试不工作

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))

我想检查输入文本(数量)是否在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))
    {
        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?$/
    

    它不允许使用eg
    09
    ,但这可能没问题。

    如果您真的想使用正则表达式,这应该可以:

    /^100$|^[1-9]\d?$/
    

    它不允许eg
    09
    ,但也许这没关系。

    使用
    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没有指定所有“理想”条件。如果你认为