Я делаю функцию для проверки входных данных формы (для практики), и, возможно, я также ее использую.Проверка правильности регулярных выражений Javascript с использованием атрибутов поля ввода без eval
Мне было интересно, есть ли способ применить ту же функциональность без eval, поскольку я слышал, что это плохо для интерпретатора js. Также улучшения, если они есть. А также мне хотелось бы знать, есть ли что-то, что делает ту же работу, т. Е. Применять правила регулярного выражения для повторного использования для ввода полей.
Вот моя функция проверки JavaScript.
function validate(){
var num=/[0-9]+/g;
var alphanum=/[0-9a-zA-Z_]+/g;
var alphanumSpace=/[0-9a-zA-Z\w_]+/g;
var alpha=/[a-zA-Z]+/g;
var alphaSpace=/[a-zA-Z\w]+/g;
var alphanumDot=/[0-9a-zA-Z\._]+/g;
var money=/[0-9]+\.?[0-9]{0,2}?/g;
var flag=true;
var alertBox="Incorrect entries:\n\n";
$.each($('input[data-check]'),function(index,value){
if(!eval(value.dataset.check+'.test("'+value.value+'")')){
alertBox+=value.name+",\n";
flag=false;
}
});
alert(alertBox);
return flag;
}
Который используется для вызова на форме
<form onsubmit="return validate()">
На полях, которые имеют атрибут данных проверки, как любой из переменных соответствия, которые я определил, как
<input data-check='num'>
Это вызовет проверку регулярного выражения на числовое выражение, определенное в моем коде.
Кроме того, ваш 'alphanumSpace' может быть упрощена только' [\ ш \ s] + '', который соответствует [а-z0-9 \ s _] + ',' \ w' означает любой символ слова - этот набор включает в себя 'alphanum' и' _' уже :) – SidOfc