最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

/**
* 驗(yàn)證月份表單輸入是否合法
* 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("請(qǐng)參考格式[" + pattern + "]輸入!\n" + "e.g \"2010" + splitChar + "11\" or \"2010" + splitChar + "03\"");
text.value = "";
text.focus();
return false;
}
return true;
}

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

/**
* 驗(yàn)證月份表單輸入是否合法
* 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("請(qǐng)參考格式[" + pattern + "]輸入!\n" + "e.g \"2010" + splitChar + "11\" or \"2010" + splitChar + "03\"");
text.value = "";
text.focus();
return false;
}
return true;
}

有一點(diǎn)值得注意:動(dòng)態(tài)拼出腳本字符串傳給eval()方法執(zhí)行時(shí),需要對(duì)字符'\'轉(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)文章

  • JavaScript布爾運(yùn)算符原理使用解析

    JavaScript布爾運(yùn)算符原理使用解析

    這篇文章主要介紹了JavaScript布爾運(yùn)算符原理使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 基于Bootstrap模態(tài)對(duì)話框只加載一次 remote 數(shù)據(jù)的解決方法

    基于Bootstrap模態(tài)對(duì)話框只加載一次 remote 數(shù)據(jù)的解決方法

    下面小編就為大家?guī)?lái)一篇基于Bootstrap模態(tài)對(duì)話框只加載一次 remote 數(shù)據(jù)的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 解決css和js的{}與smarty定界符沖突問(wèn)題的兩種方法

    解決css和js的{}與smarty定界符沖突問(wèn)題的兩種方法

    當(dāng)輸入url地址后網(wǎng)頁(yè)出現(xiàn)如下文所描述的問(wèn)題通常是css和js的{}與smarty定界符沖突導(dǎo)致的,解決方法有兩個(gè),具體如下,感興趣的朋友可以參考下
    2013-09-09
  • javascript實(shí)現(xiàn)查詢商品功能

    javascript實(shí)現(xiàn)查詢商品功能

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)查詢商品功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • ES6 Object.assign()的用法及其使用

    ES6 Object.assign()的用法及其使用

    這篇文章主要介紹了ES6 Object.assign()的用法及其使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • JavaScript 獲取 URL 中參數(shù)值的方法

    JavaScript 獲取 URL 中參數(shù)值的方法

    本文將詳細(xì)介紹幾種在 JavaScript 中獲取 URL 參數(shù)值的方法,包括現(xiàn)代瀏覽器支持的 URLSearchParams、正則表達(dá)式解析以及自定義函數(shù)解析方案,并討論各自的優(yōu)缺點(diǎn)及適用場(chǎng)景,感興趣的朋友一起看看吧
    2025-04-04
  • JS 實(shí)現(xiàn)導(dǎo)航欄懸停效果(續(xù)2)

    JS 實(shí)現(xiàn)導(dǎo)航欄懸停效果(續(xù)2)

    發(fā)現(xiàn)原來(lái)的方法還有是有幾個(gè)問(wèn)題:首先Js代碼冗余,導(dǎo)航條上的Tab是用js實(shí)現(xiàn)跳轉(zhuǎn)而不是超鏈接,還有導(dǎo)航條本身用fixed定位,但沒(méi)有被設(shè)置為水平居中,而是在JS中更改left值使其居中
    2013-09-09
  • table insertRow、deleteRow定義和用法總結(jié)

    table insertRow、deleteRow定義和用法總結(jié)

    這篇文章主要對(duì)table insertRow、deleteRow定義和用法做下總結(jié),需要的朋友可以參考下
    2014-05-05
  • 深入探討JavaScript中Class的語(yǔ)法與使用

    深入探討JavaScript中Class的語(yǔ)法與使用

    這篇文章將帶大家深入探討 class 在 JavaScript 中的作用、語(yǔ)法和使用方法,并與 ES5 構(gòu)造函數(shù)進(jìn)行對(duì)比,希望可以幫助大家更好地理解和應(yīng)用類(lèi)的概念
    2023-06-06
  • JavaScript檢測(cè)并限制復(fù)選框選中個(gè)數(shù)的方法

    JavaScript檢測(cè)并限制復(fù)選框選中個(gè)數(shù)的方法

    這篇文章主要介紹了JavaScript檢測(cè)并限制復(fù)選框選中個(gè)數(shù)的方法,涉及javascript針對(duì)復(fù)選框的判定與運(yùn)算相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

屯留县| 原平市| 济南市| 二连浩特市| 措美县| 芒康县| 铜鼓县| 潍坊市| 四川省| 彰化市| 民丰县| 三原县| 正蓝旗| 曲沃县| 吴堡县| 安龙县| 边坝县| 六安市| 万全县| 恩平市| 灵川县| 蓬溪县| 桂东县| 剑阁县| 图片| 定州市| 东丽区| 宜宾市| 伊川县| 岱山县| 乐东| 宜黄县| 龙山县| 横山县| 怀化市| 泸定县| 体育| 兖州市| 固阳县| 温州市| 三明市|