Rob*_*ert 10 javascript regex validation
有一个脚本使用正则表达式将文本定义为数字:
function validateTextNumericInRange(textInputId)
{
var numRegex = /^[\d]+$/;
var textInput = document.getElementById(textInputId);
var valid = true;
if (numRegex.test(textInput.value) == false) {
alert('Value must be a number between 3-48');
valid = false;
}
return valid;
}
Run Code Online (Sandbox Code Playgroud)
需要使用此格式并提供最小/最大范围(现在任意,例如3到48之间).我如何修改此正则表达式以完成并拥有正确的参数?
Viv*_*ath 11
我不明白你的问题.你的意思是你想要一个3到48位数的数字,或者数字的值必须在3到48之间吗?
对于后者,您不需要正则表达式:
function validateTextNumericInRange (textInputId) {
var textInput = document.getElementById(textInputId);
var value = parseInt(textInput.value, 10);
return (!isNaN(value) && value >= 3 && value <= 48);
}
Run Code Online (Sandbox Code Playgroud)
更通用的解决方案:
function validateTextNumericInRange(textInputId, min, max) {
var textInput = document.getElementById(textInputId);
var value = parseInt(textInput.value, 10);
return (!isNaN(value) && value >= min && value <= max);
}
Run Code Online (Sandbox Code Playgroud)
要测试数字是否在3到48位数之间,您可以使用正则表达式/^[0-9]{3, 48}$/.
正则表达式很难且不灵活,因为它的例子是:
/^(?:[3-9]|[1-3][0-9]|4[0-8])$/
Run Code Online (Sandbox Code Playgroud)
最好采用Vivins的解决方案.