使用不带eval的输入字段属性的Javascript regex验证
Javascript regex validation using input field attributes without eval
我正在制作一个函数来验证表单输入数据(用于练习),也许我也会使用它。
我想知道是否有某种方法可以在没有eval的情况下应用相同的功能,因为我听说它在js解释器上很糟糕。还有改进(如果有的话)。此外,我还想知道是否有同样的功能,即将可重复使用的regex规则应用于输入字段。
这是我的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'>
这将根据我的代码中定义的num正则表达式调用测试正则表达式。
您可以使用new RegExp
和window[]
:执行类似的操作
$.each($('input[data-check]'),function(index,value){
var str = value.value;
var patt = new RegExp(window[value.dataset.check]);
var res = patt.test(str);
if(!res){
alertBox+=value.name+",'n";
flag=false;
}
});
相关文章:
- 保存具有相同属性 JavaScript 的元素上的值
- DOM 元素上的空样式属性:JavaScript
- 基于一个属性Javascript检索多个对象
- xml获取属性javascript不会;无法处理childNodes
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 向嵌套对象添加属性 - Javascript
- 属性 Javascript 的访问属性
- 更改链中的 css 属性 - JavaScript
- 更改属性 Javascript 方式的值
- 如何从 url 解析 xml 获取属性 javascript
- 语法错误:缺少:在属性 javascript 之后
- 创建 if 条件基于 CSS 属性 -- JavaScript
- 访问节点的属性javascript二进制搜索树
- 访问父函数属性Javascript
- 为什么未定义此对象的属性?Javascript
- 访问私有属性Javascript OOP
- 访问数组中的属性?(Javascript)
- 动态添加参数作为对象的属性-JavaScript
- 冲突/方法/属性Javascript错误