您好,欢迎访问一九零五行业门户网

JS 有趣的eval优化输入验证实例代码_javascript技巧

复制代码 代码如下:
//eval就是计算字符串【可以放任何js代码】里的值
//1、
var str1='12+3';
       eval(str1);//15//2、
var str2='[1,2,3]';
       eval(str2[0]);//1
//3、
eval('alert(abc)');//弹出abc
//4、
var str=function show(){alert('love you');};
     eval(str);
     show();
//5、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
复制代码 代码如下:
用户名:
邮箱:
2.1 看如下代码  
复制代码 代码如下:
function validateform() {            var namev = form1.name.value()
            alert(namev);// 如果我们在文本框输入短发美女,弹出来肯定是短发美女 
              //继续
              namev=eval('form1.name.value()');
              alert(namev);//同样也是 短发美女  5 }
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                 var fv = eval(form1. + list[i].fieldname + .value);//执行eval运算
                if (fv == null ||!fv.mytrim()) {
                      //记录错误信息
//                    var lierror = + list[i].fielddesc + 不能为空;
//                    oul.innerhtml+=lierror;
                    var lierror = document.createelement(li);
                    lierror.innerhtml =list[i].fielddesc + 不能为空;
                    oul.appendchild(lierror);
                    flag = false;
                }
            }
}
其它类似信息

推荐信息