//eval就是计算字符串【可以放任何js代码】里的值
、 var str1='12+3';
eval(str1);// 、 var str2='[1,2,3]';
eval(str2[]);// 、eval('alert("abc")');//弹出abc 、var str="function show(){alert('love you');}";
eval(str);
show(); 、eval--->json字符串

1、如果对如上用户名,邮箱验证输入验空,传统的做法

    var flag = true;
if (document.getElementById("txtName").value == "") {
//写入错误信息
flag = false;
}
if (document.getElementById("txtEmail").value == "") {
//写入错误信息
flag = false;
}
return flag
}

-->但是如何有很多需要验证的字段,if会有很多,而且一点都不雅观

2、平静心情,来看看html

   用户名:<input type="text" id="txtName" name="name" /><br />
邮箱:<input type="text" id="txtEmail" name="email" value="" /><br />
<input type="button" value="验证" onclick="validateForm()" />

2.1 看如下代码

  function validateForm() {

             var nameV = form1.name.value()
alert(nameV);// 如果我们在文本框输入"短发美女",弹出来肯定是"短发美女"
//继续
nameV=eval('form1.name.value()');
alert(nameV);//同样也是 "短发美女"
 }

3、封装

        function FormField(fieldName, fieldDesc) {//将变化者 属性字段和描述封装起来
this.fieldName = fieldName;
this.fieldDesc = fieldDesc;
}
String.prototype.MyTrim = function () {//去除首尾空格
return this.replace(/^\s+|\s+$/g, '');
}
function validateForm() { var oUl = document.getElementById("ulError");
oUl.innerHTML = "";
var list = new Array
(
//以后只需要验证为空的 只需要在数组中增加一个对象即可
new FormField("name", "用户名"),
new FormField("email", "邮箱")
);
var flag = true;
for (var i = 0; i < list.length; i++) {
var fv = eval("form1." + list[i].fieldName + ".value");//执行eval运算
if (fv == null ||!fv.MyTrim()) {
//记录错误信息
// var liError = "<li>" + list[i].fieldDesc + "不能为空</li>";
// oUl.innerHTML+=liError;
var liError = document.createElement("li");
liError.innerHTML =list[i].fieldDesc + "不能为空";
oUl.appendChild(liError);
flag = false;
}
}
}

JS 有趣的eval优化输入验证的更多相关文章

  1. JS学习笔记12_优化

    一.可维护性优化 1.添加注释 注释能够增强代码的可读性以及可维护性,当然,理想情况是满满的注释,但这不太现实.所以我们只需要在一些关键的地方添上注释: 函数和方法:尤其是返回值,因为直接看不出来 大 ...

  2. 在js中实现邮箱格式的验证

    在js中实现邮箱格式的验证 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><htm ...

  3. 客户端JS性能的一些优化的小技巧

    下面是一些关于客户端JS性能的一些优化的小技巧:1.[顶]关于JS的循环,循环是一种常用的流程控制.JS提供了三种循环:for(;;). while().for(in).在这三种循环中 for(in) ...

  4. javascript设计模式实践之策略模式--输入验证

    策略模式中的策略就是一种算法或者业务规则,将这些策略作为函数进行封装,并向外提供统一的调用执行. 先定义一个简单的输入表单: <!DOCTYPE html> <html> &l ...

  5. js资源加载优化

    互联网应用或者访问量大的应用,对js的加载优化是不可少的.下面记录几种优化方法 CDN  + 浏览器缓存 CDN(content delivery network)内容分发网络, 最传统的优化方式.其 ...

  6. AngularJS学习之输入验证

    1.AngularJS可以验证表单和控件可以验证输入的数据: 2.输入验证:客户端不能确保用户输入数据的安全,所以服务器端的数据验证也是必须的: 3.应用实例: <! DOCTYPE html& ...

  7. js限制文本框只能输入整数或者带小数点[转]

    这篇文章是关于js限制文本框只能输入整数或者带小数点的内容,以下就是该内容的详细介绍. 做表单验证的时候是否会碰到验证某个输入框内只能填写数字呢,仅允许输入整数数字或者带小数点的数字.下面这段代码也许 ...

  8. js简单验证码的生成和验证

    如何用js生成简单验证码,并验证是否正确的方法 1.html页面如下 <div> <table border="0" cellspacing="5&qu ...

  9. formValidator输入验证、异步验证实例 + licenseImage验证码插件实例应用

    实例技术:springmvc 实现功能:完整用户登录流程.输入信息规则校验.验证码异步校验. 功能清单: 1.springmvc控制器处理get请求(/member/login.html),进行静态页 ...

随机推荐

  1. MySQL中是索引

    MySQL中是索引: --.唯一索引: 一行中的内容不能一样, create t2( id int , num int, unique weiyisuiyin (id,num) ) --唯一; --约 ...

  2. Linux文件、目录属性

    文件.目录属性 可能有人觉得,文件这东西这么普通有什么好讲的,,,其实不然,在linux中一切皆文件,搞清楚文件的本质,将对我们大有裨益. 文件.目录属性简介 举个例子 randolf@localho ...

  3. 单表:SQL语句关键字的执行顺序

    表和数据: -- 创建表 CREATE TABLE `person` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, `age` ) ', ` ...

  4. 42.global bucket的使用:单个品牌与所有品牌销量对比

    主要知识点: _global bucket的使用     本例以搜索单个品牌和所有品牌的销量对比进行学习_global .es在进行aggregation操作时都只只是在一个scope中进行聚合等操作 ...

  5. Git下的标签

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...

  6. 使用命令行打开vscode

    今天看到一个博客,直接使用code . 就可以打开vscode

  7. 【Codeforces 158C】Cd and pwd commands

    [链接] 我是链接,点我呀:) [题意] 让你实现Shell的cd和pwd操作 [题解] 用一个list表示当前的路径 如果路径以/开头则表示需要清空当前路径重新走路 否则在原来路径的基础上继续加就可 ...

  8. 字符串拼接原理 javac 和 javap

    一.新建一个 Test1 类 public class Test1 { public static void main(String[] args) { String a = "a" ...

  9. cogs 167. [USACO Mar07] 月度花费

    167. [USACO Mar07] 月度花费 ★★   输入文件:expense.in   输出文件:expense.out   简单对比时间限制:1 s   内存限制:128 MB Farmer ...

  10. MYSQL 字符集 MYSQL 源码

    http://blog.csdn.net/maray/article/details/46504621