将过程代码合并到关联数组对象
Consolidating procedural code to an associative array object
我有5个函数检查用户输入的正则表达式…这些正则表达式已经被抽象出来,并按照之前的帖子的建议放在这里。
现在我想抽象出的功能,并把代码到一个关联数组每前一篇文章以及..然而,他们似乎是一些争论,这是否是最佳实践?这样可以吗?
将这些函数放入函数的关联数组中是好的做法吗?之前的帖子没有这样做,我猜他们决定反对。
但是基本上如何将相似的方法正确地组合在一起。
EDIT 1: // consolidated regular expressions
var patterns = {
name: /^[a-zA-Z-'s]{1,20}$/,
email: /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{1,4}$/,
pass: /.{6,40}/,
url: /^[-'w&:'/'.='?,#+]{1,}$/,
aml: /<(.+)_([a-z]){1}>$/
};
// checks full name which allows characters and dashes
function check_name(text,id,res)
{
for(var d=0;d<=0;d++)
{
if(!patterns["name"].exec(text.value))
{
o2(id,res);
return 0;
}
}
return 1;
}
// checks for valid email form
function check_email(text,id,res)
{
if(!patterns["email"].exec(text.value))
{
o2(id,res);
return 0;
}
return 1;
}
// checks for password length
function check_pass(text,id,res)
{
if(!patterns["pass"];.exec(text.value))
{
o2(id,res);
return 0;
}
return 1;
}
// checks for valid url form
function check_url(text,id,res)
{
if(!patterns["url"].exec(text.value))
{
o2(id,res);
return 0;
}
return 1;
}
// checks for aml form
function check_aml(text)
{
if(a=patterns["aml"].exec(text))
{
if(a[2]=='p')
{
return 0;
}
else if (a[2]=='f')
{
return 1;
}
}
else
{
return 2;
}
}
我不认为创建一个通用的地方来存储你的模式有任何问题。事实上,这似乎是一个好方法。但是,我认为没有必要让您的单个检查函数知道全局存储。相反,应该让他们简单地了解他们正在检查的模式和他们检查的来源。如果您采用这种方法,您的检查代码可以大大简化
var make_check = function (pattern) {
return function (text, id, res) {
if(!pattern.exec(text.value)) {
o2(id,res);
return 0;
}
return 1;
};
};
var check_name = make_check(patterns.name);
var check_email = make_check(patterns.email);
var check_pass = make_check(patterns.pass);
var check_url = make_check(patterns.url);
这里我从检查函数中删除了全局存储的概念。由于代码的其余部分非常相似,因此可以将其抽象为一个方法,该方法将传递其寻找匹配的模式。
相关文章:
- 多维关联数组的最后一个索引
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- 具有关联数组数据集的D3.js表
- 后关联数组使用jquery ajax
- 返回一个关联数组,而不是mongoose中的文档数组
- 如何在 Angular JS 中从关联数组创建多个复选框
- 存储在变量中的关联数组中的访问键
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 关联数组,并使用父数组d作为selection.data()的源数组
- 获取关联数组的标签
- JavaScript:如何在最接近值的关联数组中查找键
- 单击时显示关联数组的元素
- 关联数组 - 使用图像滑块显示键值
- Javascript从关联数组中查找最低数字(气泡排序方法)
- AngularJS过滤器不适用于我的数据:关联数组
- 获取关联数组中当前函数的键
- 如何按一个仍保持字母顺序的特性值(另一个特性值)对关联数组进行排序
- 正在检查JavaScript中是否存在关联数组
- 将数据附加到关联数组或维度数组