JS 有趣的eval優(yōu)化輸入驗(yàn)證實(shí)例代碼
//eval就是計(jì)算字符串【可以放任何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、如果對(duì)如上用戶名,郵箱驗(yàn)證輸入驗(yàn)空,傳統(tǒng)的做法
var flag = true;
if (document.getElementById("txtName").value == "") {
//寫入錯(cuò)誤信息
flag = false;
}
if (document.getElementById("txtEmail").value == "") {
//寫入錯(cuò)誤信息
flag = false;
}
return flag
}
-->但是如何有很多需要驗(yàn)證的字段,if會(huì)有很多,而且一點(diǎn)都不雅觀
2、平靜心情,來看看html
用戶名:<input type="text" id="txtName" name="name" /><br />
郵箱:<input type="text" id="txtEmail" name="email" value="" /><br />
<input type="button" value="驗(yàn)證" onclick="validateForm()" />
2.1 看如下代碼
function validateForm() {
var nameV = form1.name.value()
alert(nameV);// 如果我們?cè)谖谋究蜉斎?短發(fā)美女",彈出來肯定是"短發(fā)美女"
//繼續(xù)
nameV=eval('form1.name.value()');
alert(nameV);//同樣也是 "短發(fā)美女" 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
(
//以后只需要驗(yàn)證為空的 只需要在數(shù)組中增加一個(gè)對(duì)象即可
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");//執(zhí)行eval運(yùn)算
if (fv == null ||!fv.MyTrim()) {
//記錄錯(cuò)誤信息
// 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;
}
}
}
相關(guān)文章
JavaScript實(shí)現(xiàn)簡易聊天對(duì)話框(加滾動(dòng)條)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡易聊天對(duì)話框,附加滾動(dòng)條功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02小程序角標(biāo)的添加及綁定購物車數(shù)量進(jìn)行實(shí)時(shí)更新的實(shí)現(xiàn)代碼
這篇文章主要介紹了小程序角標(biāo)的添加及綁定購物車數(shù)量進(jìn)行實(shí)時(shí)更新的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12JS導(dǎo)出PDF插件的方法(支持中文、圖片使用路徑)
下面小編就為大家?guī)硪黄狫S導(dǎo)出PDF插件的方法(支持中文、圖片使用路徑)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07使用Vue3實(shí)現(xiàn)一個(gè)Upload組件的示例代碼
這篇文章主要介紹了使用Vue3實(shí)現(xiàn)一個(gè)Upload組件的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05JS中setInterval、setTimeout不能傳遞帶參數(shù)的函數(shù)的解決方案
在JS中無論是setTimeout還是setInterval,在使用函數(shù)名作為調(diào)用句柄時(shí)都不能帶參數(shù),而在許多場合必須要帶參數(shù),接下來為大家介紹具體的解決方法2013-04-04