Javascript 允许键入以7、8或9开头的手机号码
我需要在输入标签中使用实时验证,以允许用户只键入以7、8或9开头的数字。现在,我有以下的东西是不工作的。仅当用户在输入字段中键入数字7至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 =
<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函数中使用它,效果很好。