JavaScript 開發中規范性的一點感想
2024-05-06 14:15:03
供稿:網友
 
可謂一勞永逸,不要重復造輪子:) 
1.常用的方法統一放置 
例如:在用戶注冊時,時常需要判斷文本框中字符是否是漢字、英文、數字或郵箱地址等等。何不把這些方法統一放在一個腳本中,取名叫做utility.js呢? 
 代碼如下:
//待需要時另存為一個js 
function isNull(obj) 
{ 
if (!obj || obj.length==0 || obj=="") 
{ 
parent.MyAlert("標注名不能為空!",alertImg); 
return false; 
} 
else 
{ 
return true; 
} 
} 
// 驗證是否為整數 
function isNumber(oNum) 
{ 
if(!oNum) return false; 
try{ 
if(parseInt(oNum)!=oNum) { 
parent.MyAlert("查詢距離請填寫正整數!",alertImg); 
return false; 
} 
} 
catch(ex) 
{ 
parent.MyAlert("查詢距離請填寫正整數!",alertImg); 
return false; 
} 
return true; 
} 
// 驗證是否為中文 
function isChinese(oCn) 
{ 
if (!oCn || oCn.length==0) return false; 
try{ 
var reg = /^[/u4e00-/u9fa5]+$/i; //含中文 
if ( reg.test(oCn) ) 
{ 
return true; 
} 
else{ 
parent.MyAlert("關鍵字請填寫中文!",alertImg); 
return false; 
} 
} 
catch(ex) 
{ 
parent.MyAlert("關鍵字請填寫中文!",alertImg); 
return false; 
} 
} 
// 驗證是否為中文或字母 
function isEnCh(oStr) 
{ 
if (!oStr || oStr.length==0) return false; 
try{ 
var reg = /^[a-zA-Z/u4E00-/u9FA5]/g; //含中文或拼音 
if ( reg.test(oStr) ) 
{ 
return true; 
} 
else{ 
parent.MyAlert("地名請填寫中文或拼音!",alertImg); 
return false; 
} 
} 
catch(ex) 
{ 
parent.MyAlert("地名請填寫中文或拼音!",alertImg); 
return false; 
} 
} 
// 結果保留2位小數 
function roundAmount(n){ 
var s = "" + Math.round(n * 100) / 100; 
var i = s.indexOf('.') 
if (i < 0) return s + ".00"; 
var t = s.substring(0, i + 1) + s.substring(i + 1, i + 3); 
if (i + 2 == s.length) t += "0"; 
return t; 
}
2.提示、報錯信息統一放置 
看了上面的代碼,您是否也發現一個問題:下一個項目中如果提示、報錯信息不一樣,還需要重新改動上述代碼。何不把提示信息統一放在一個腳本中,取名叫做resource_zh.js呢? 
在多語言版本的軟件中,也有用類似的招數達到切換界面語言,有發現?呵呵。 
 代碼如下:
var page_res = { 
    "meter": "米", 
    "kilometer": "千米(公里)", 
    "mile": "英里", 
    "yard": "碼", 
    "degree": "度", 
    "millimeter": "毫米", 
    "saveMap": "保存地圖", 
    "printMap": "打印地圖", 
    "queryResult": "查詢結果", 
    "queryResultNull": "查詢結果為空",