欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js動態(tài)拼接正則表達(dá)式的兩種方法

 更新時間:2014年03月04日 11:40:17   作者:  
這篇文章主要介紹了js動態(tài)拼接正則表達(dá)式的兩種方法,需要的朋友可以參考下
方法一:

做項目的時候可能會遇到用js驗證表單輸入正確性的需求,這時候就需要用到j(luò)s的正則表達(dá)式。舉個例子:比如說要驗證月份,格式為:'yyyy-MM',這個正則表達(dá)式寫起來很簡單,實在寫不出,也可以Google、百度一把,網(wǎng)上例子一大堆!但是js正則表達(dá)式就這樣寫死也會帶來新的問題:如果配置文件的月份格式改了呢?改成'yyyyMM'、或者是'yyyy_MM'...呢??我們是不是要記得去把js中的正則表達(dá)式也跟著一遍遍的改呢??

這時候我們就要問了:怎樣才能寫出動態(tài)的正則表達(dá)式呢,修改了配置文件,就不需要再去動代碼了呢?

筆者翻閱了js手冊,沒有找到將字符串轉(zhuǎn)換成正則表達(dá)式的方法,但是可以用eval();方法動態(tài)執(zhí)行腳本的方式間接解決這個問題!從而寫出更加通用的代碼!

下面貼出上例的通用解決方案:
復(fù)制代碼 代碼如下:

/**
* 驗證月份表單輸入是否合法
* pattern : 月份格式字符串
* id : 表單id
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
var monthStr = text.value;
var splitChar = "";
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2);
eval("var re = /\\d{4}" + splitChar + "\\d{2}$/;");
//var re = /\d{4}-\d{2}$/;
if(monthStr.match(re) == null) {
alert("請參考格式[" + pattern + "]輸入!\n" + "e.g \"2010" + splitChar + "11\" or \"2010" + splitChar + "03\"");
text.value = "";
text.focus();
return false;
}
return true;
}

復(fù)制代碼 代碼如下:

/**
* 驗證月份表單輸入是否合法
* pattern : 月份格式字符串
* id : 表單id
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
var monthStr = text.value;
var splitChar = "";
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2);
eval("var re = /\\d{4}" + splitChar + "\\d{2}$/;");
//var re = /\d{4}-\d{2}$/;
if(monthStr.match(re) == null) {
alert("請參考格式[" + pattern + "]輸入!\n" + "e.g \"2010" + splitChar + "11\" or \"2010" + splitChar + "03\"");
text.value = "";
text.focus();
return false;
}
return true;
}

有一點值得注意:動態(tài)拼出腳本字符串傳給eval()方法執(zhí)行時,需要對字符'\'轉(zhuǎn)義

方法二:
復(fù)制代碼 代碼如下:

<script>
var n=new Array( ".htm ", ".html ", ".shtml ");
//var pattern1 = new RegExp( "\\w+\\ "+n[0]+ "$ ", "gi ");
var s1= "b.shtml ";
var result = false;
for(var i=0;i <n.length;i++)
{
pattern1 = new RegExp( "\\w+\\ "+n[i]+ "$ ", "gi ");
result|=pattern1.test(s1);
}
alert(Boolean(result));
</script>

相關(guān)文章

最新評論