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

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

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

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

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

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

下面貼出上例的通用解決方案:
復(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("請參考格式[" + 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("請參考格式[" + pattern + "]輸入!\n" + "e.g \"2010" + splitChar + "11\" or \"2010" + splitChar + "03\"");
text.value = "";
text.focus();
return false;
}
return true;
}

有一點(diǎn)值得注意:動態(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)文章

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了ES6 Object.assign()的用法及其使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(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)及適用場景,感興趣的朋友一起看看吧
    2025-04-04
  • JS 實(shí)現(xiàn)導(dǎo)航欄懸停效果(續(xù)2)

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

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

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

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

    深入探討JavaScript中Class的語法與使用

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

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

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

最新評論

宜君县| 长治市| 乌兰浩特市| 南乐县| 汉阴县| 通辽市| 大厂| 西林县| 逊克县| 金门县| 延寿县| 新疆| 金乡县| 陈巴尔虎旗| 合肥市| 枣庄市| 乌兰县| 社旗县| 桐梓县| 合肥市| 喀喇| 恩平市| 平定县| 南阳市| 黔江区| 东丽区| 克东县| 平原县| 晋城| 巴林右旗| 平果县| 江阴市| 南平市| 南昌市| 南川市| 昭平县| 彩票| 个旧市| 安新县| 广昌县| 洪泽县|