Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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 允许键入以7、8或9开头的手机号码_Javascript_Html_Regex_Validation - Fatal编程技术网

Javascript 允许键入以7、8或9开头的手机号码

Javascript 允许键入以7、8或9开头的手机号码,javascript,html,regex,validation,Javascript,Html,Regex,Validation,我需要在输入标签中使用实时验证,以允许用户只键入以7、8或9开头的数字。现在,我有以下的东西是不工作的。仅当用户在输入字段中键入数字7至9作为第一个数字时,输入字段中才应显示该数字 <input type="tel" label="Mobile Number" pattern="^[7-9][0-9]{8}$" maxLength="10"/> 只有在提交时才验证输入模式 如果您想实时验证,可以使用javascript实现 (function() { var input =

我需要在输入标签中使用实时验证,以允许用户只键入以7、8或9开头的数字。现在,我有以下的东西是不工作的。仅当用户在输入字段中键入数字7至9作为第一个数字时,输入字段中才应显示该数字

<input type="tel" label="Mobile Number" pattern="^[7-9][0-9]{8}$" maxLength="10"/>

只有在提交时才验证输入模式

如果您想实时验证,可以使用javascript实现

(function() {
    var input = document.getElementById('YOUR_INPUT_ID');
    var pattern = /^[7-9][0-9]{0,8}$/;
    var value = input.value;
    !pattern.test(value) && (input.value = value = '');
    input.addEventListener('input', function() {
        var currentValue = this.value;
        if(currentValue && !pattern.test(currentValue)) this.value = value;
        else value = currentValue;
    });
})();

^[7-9][0-9]{8}$
模式匹配以
7
8
9
开头的字符串,然后包含任意8位数字。它检查最终格式,
模式
属性通常不用于实时输入验证。无论如何,您似乎想要使用
^[7-9]\d{0,8}$
模式。它仍然允许在输入字段中键入数字0-6作为第一位数字。是的,因为如果您想要
模式
工作,您需要使用
type=“text”
。定义“不工作”。这对我来说很好。我将它的类型从tel更改为文本,并使用您给定的模式。但还是和以前一样。不起作用..在onChange函数中使用它,效果很好。