亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

JScript中正則表達式函數的說明與應用

2020-03-16 21:24:20
字體:
來源:轉載
供稿:網友

作為模式匹配下文本替換、搜索、提取的強有力工具,正則表達式(Regular Expression)的應用已經從unix平臺逐漸滲入到網絡開發中了,作為服務器端/客戶端的腳本開發語言JScript,正越來越多將正則表達式應用融入其中,以彌補自身在文本上處理能力的不足。在此,我們以JScript5.5版本為例,對其中的正則表達式的應用作一個概述。

首先我們需要區分JScript中關于正則表達式的兩個對象:Regular Expression對象和RegExp對象。

前者僅包含一個特定的正則表達式實例的信息,而后者通過一個全局變量的屬性來反映最近模式匹配的特性。

前者在匹配前需要指定匹配模式,即創建一個Regular Expression對象的實例,而后可以把它傳遞給一個字符串方法,或是把一個字符串作為參數傳遞給這個Regular Expression實例的方法;而后者無需創建,它是一個固有的全局對象,每次成功匹配操作結果信息被保存在這個對象的屬性中。

一、RegExp對象的屬性:反應最近一次成功匹配的結果信息

input :保存執行匹配的字符串(被搜索的目標字符串)(>=IE4)

index :保存匹配的首字符的位置*>=IE4)

lastIndex :保存匹配的字符串的下一個字符的位置(>=IE4)

lastMatch($&) :保存匹配到的字符串(>=IE5.5)

lastParen($+) :保存匹配結果最后一個子匹配的內容(最后一個括號的匹配內容)(>=IE5.5)

leftContext($`) :保存目標字符串中匹配子字符串前的所有字符 (>=IE5.5)

rightContext($'):保存目標字符串中匹配子字符串后的所有字符 (>=IE5.5)

$1 - $9 :保存匹配中最開始的9個子匹配(即最開始的9個括號內的匹配結果)(>=IE4)

二、Regular Expression對象簡介

1.Regular Expression對象定義

在腳本中使用正則表達式模式匹配,首先腰設定匹配模式,方法有如下兩種

(1)rgExp=/pattern*/[flags*]

(2)rgExp=new RegExp("pattern",["flags"])

注意:

a.后者模式中的轉義字符“/”需要用“//”表示,用以抵消JS中轉義字符"/"的意義,否則JS首先作為自己的轉義概念來解釋"/"后的字符。

b.flags標識有以下幾個(至JScript 5.5版本)

g:設定當前匹配為全局模式

i:忽略匹配中的大小寫檢測

m:多行搜索模式

2.Regular Expression對象屬性

(1)rgExp.lastIndex:匹配結果后面一個字符的位置,同RegExp.lastIndex

(2)rgExp.source:reExp對象的正則表達式匹配模式

3.Regular Expression對象方法

(1)rgExp.compile(pattern,[flags])

將rgExp轉化為內部格式,以加快匹配的執行,這對于大量模式一致的匹配更有效

(2)rgExp.exec(str)

按照rgExp的匹配模式對str字符串進行匹配查找,當rgExp對象中設定了全局搜索模式(g),則匹配查找從RegExp對象lastIndex屬性所指定的目標字符串位置開始;若沒有設置全局搜索,則從目標字符串第一個字符開始搜索。若沒有任何匹配發生,返回null。

需要注意的是該方法將匹配結果放在一個數組內返回,該數組有三個屬性

input:包含目標字符串,同RegExp.index

index:匹配到的子字符串在目標字符串中的位置,同RegExp.index

lastIndex:匹配到的子字符串后面一個字符的位置,同RegExp.lastIndex

(3)rgExp.test(str)

返回布爾值來反映被查找的目標字符串str中是否存在符合匹配的模式。該方法不改變RegExp的屬性

4.與正則表達式相關的方法

主要是指字符串對象中應用模式匹配的方法

(1)stringObj.match(rgExp)

根據rgExp對象的正則表達式模式查找字符串stringObj中的匹配字符項,將結果以數組形式返回。該數組有三個屬性值,與exec方法返回的數組屬性相同。若沒有任何匹配,返回null。

需要注意的是,若rgExp對象未設定全局匹配模式,則數組0下標元素為匹配的整體內容,1~9包含了子匹配得到的字符。若設定了全局模式,則數組包含了搜索到的所有整體匹配項。

(2)stringObj.replace(rgExp, replaceText)

返回一個字符串,即將stringObj中符合rgExp模式匹配的字符串替換成replaceText后返回。需要注意的是stringObj本身并不因為替換操作而改變。若期望stringObj中所有符合正則表達式模式的字符串被替換,則在建立正則表達式模式時要設定為全局模式。

(3)stringObj.search(rgExp)

返回第一個匹配到的子字符串的位置

符號名詞解釋:

位置:表示子字符串與目標字符串首字符的偏移

reExp:表示一個Regular Expression對象實例

stringObj:表示一個字符串對象

pattern:正則表達式模式

flags:匹配操作的模式標識

在實際web程序開發中我們可以有針對性的使用正則表達式來達到我們字符串處理的要求

如下附上四個使用正則表達式的JScript例程,這些例子主要用來熟悉正則表達式的使用。

1.email地址有效性檢測
 

  1. <script language='JScript'
  2. function validateEmail(emailStr) 
  3.  var re=/^[/w.-]+@([0-9a-z][/w-]+/.)+[a-z]{2,3}$/i; 
  4.  //或 var re=new RegExp("^[//w.-]+@([0-9a-z][//w-]+//.)+[a-z]{2,3}$","i"); 
  5.  if(re.test(emailStr)) 
  6.  { 
  7.   alert("有效email地址!"); 
  8.   return true
  9.  } 
  10.  else 
  11.  { 
  12.   alert("無效email地址!"); 
  13.   return false
  14.  } 
  15. </script> 

2.字符串替換操作
 

  1. <script language='JScript'
  2. var r, pattern, re; 
  3. var s = "The rain in Spain falls mainly in the plain falls."
  4. pattern = /falls/ig; 
  5. re = s.replace(re,'falling'); 
  6. alert('s = ' + s + '/n' + 're = ' + re); 
  7. </script> 

3.模式查找字符串
 

  1. <script language='JScript'
  2. var index, pattern; 
  3. var str = "four for fall fell fallen fallsing fall falls waterfalls "
  4. pattern = //bfalls/b/i; 
  5. index = str.search(pattern); 
  6. alert('The position of match is at ' + index); 
  7. </script> 

3.正則表達式屬性例程

 

  1. <script language='JScript'
  2. function matchAttrib() 
  3.    var s='';  
  4.    var re = new RegExp("d(b+)(d)","ig"); 
  5.    var str = "cdbBbdbsbdbdz"
  6.    while((arr = re.exec(str))!=null
  7.    { 
  8.     s += "=======================================<br>"
  9.     s += "$1 returns: " + RegExp.$1 + "<br>"
  10.     s += "$2 returns: " + RegExp.$2 + "<br>"
  11.     s += "$3 returns: " + RegExp.$3 + "<br>"
  12.     s += "input returns : " + RegExp.input + "<br>"
  13.     s += "index returns : " + RegExp.index + "<br>"
  14.     s += "lastIndex returns : " + RegExp.lastIndex + "<br>"
  15.     s += "lastMatch returns: " + RegExp.lastMatch + "<br>"
  16.     s += "leftContext returns: " + RegExp.leftContext + "<br>"
  17.     s += "rightContext returns: " + RegExp.rightContext + "<br>";  
  18.     s += "lastParen returns: " + RegExp.lastParen + "<br>"
  19.     s += "arr.index returns: " + arr.index + "<br>"
  20.     s += "arr.lastIndex returns: " + arr.lastIndex + "<br>"
  21.     s += "arr.input returns: " + arr.input + "<br>"
  22.     s += "re.lastIndex returns: " + re.lastIndex + "<br>"
  23.     s += "re.source returns: " + re.source + "<br>"
  24.    } 
  25.    return(s);                            //Return results. 
  26. document.write(matchAttrib()); 
  27. </script> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品一区二区三区四区| 国产在线视频2019最新视频| 有码中文亚洲精品| 日韩日本欧美亚洲| 久久国产精品网站| 久久精品亚洲精品| 欧美激情精品久久久| 一区国产精品视频| 69av在线视频| 国产精品成人va在线观看| 91精品啪aⅴ在线观看国产| 亚洲影院在线看| 欧美视频在线免费看| www.欧美三级电影.com| 亚洲欧美日韩国产成人| 欧美日韩中文字幕| 九九九热精品免费视频观看网站| 欧美精品一二区| 亚洲欧美国产精品va在线观看| 狠狠色香婷婷久久亚洲精品| 久久久久久久久久久免费| 日韩欧美精品网址| 欧美日韩黄色大片| 97色在线观看| 亚洲美女av在线播放| 亚洲成人av中文字幕| 亚洲自拍偷拍色图| 国产精品爱啪在线线免费观看| 欧美视频13p| 欧美性猛交xxxx免费看久久久| 精品国产视频在线| 欧美成人精品激情在线观看| 一个色综合导航| 欧美黑人xxx| 日日摸夜夜添一区| 欧美激情区在线播放| 疯狂做受xxxx欧美肥白少妇| 欧美精品一二区| 91精品国产91久久久久久吃药| 中文国产成人精品| 亚洲区在线播放| 午夜精品一区二区三区av| 国产福利视频一区| 国产免费亚洲高清| 国产精品入口免费视频一| 国产精品久久久久aaaa九色| 性色av一区二区三区红粉影视| 欧美人与物videos| 久久欧美在线电影| 久久精品国产亚洲精品2020| 久久久av一区| 成人信息集中地欧美| 欧美在线性爱视频| www国产精品com| 欧美极度另类性三渗透| 欧美三级免费观看| 成人444kkkk在线观看| 亚洲欧洲在线播放| 欧美精品激情在线| 国产精品久久二区| 久久天天躁日日躁| 俺也去精品视频在线观看| 国产精品海角社区在线观看| 精品国产一区二区在线| 欧美国产日韩一区二区在线观看| 日韩最新免费不卡| 欧美黑人性猛交| 高清欧美性猛交| 日韩不卡在线观看| 欧美主播福利视频| 亚洲欧美日韩天堂一区二区| 亚洲欧美国产一区二区三区| 91精品视频免费| 欧美日韩亚洲视频| 国产精品高潮粉嫩av| 91国产精品电影| 久久色精品视频| 欧美国产日韩一区二区在线观看| 91青草视频久久| 日韩精品一二三四区| 亚洲日本成人网| 欧美国产日本高清在线| 中文字幕一区电影| 国产精品福利网站| 国产精品自产拍在线观| 色综合老司机第九色激情| 亚洲视频一区二区三区| 欧美午夜视频在线观看| 欧美国产高跟鞋裸体秀xxxhd| 91精品国产91久久久久福利| 成人乱人伦精品视频在线观看| 久久乐国产精品| 精品无码久久久久久国产| 成人羞羞国产免费| 国产精品高清免费在线观看| 中文字幕欧美日韩在线| 欧美成年人视频网站欧美| 中文字幕在线看视频国产欧美在线看完整| 色综合色综合久久综合频道88| 精品国产自在精品国产浪潮| 成人春色激情网| 欧美亚洲免费电影| 欧美高清视频在线| 97超级碰碰人国产在线观看| 国内精品久久久久久中文字幕| 午夜精品一区二区三区在线视频| 亚洲香蕉成视频在线观看| 精品久久久久久国产| 久久香蕉国产线看观看av| 欧美一级淫片videoshd| 久久不射电影网| 欧美一区二区三区艳史| 日产精品99久久久久久| 91精品视频免费看| 国产在线观看91精品一区| 国产一区二区激情| 亚洲嫩模很污视频| 一区二区亚洲精品国产| 欧美成人免费小视频| 亚洲欧美日本伦理| 在线激情影院一区| 久久精品中文字幕| 欧美大奶子在线| 中文字幕精品一区久久久久| 色www亚洲国产张柏芝| 国产精品久久久久aaaa九色| 亚洲激情视频在线观看| 尤物99国产成人精品视频| 亚洲黄色av女优在线观看| 久热在线中文字幕色999舞| 日韩av最新在线观看| 亚洲福利视频久久| 欧美激情视频一区二区三区不卡| 91色琪琪电影亚洲精品久久| 国产成人精品午夜| 亚洲桃花岛网站| 国产精品久久久久久亚洲影视| 亚洲第一国产精品| 亚洲在线免费观看| 欧美另类老女人| 国产精品高潮在线| 日韩欧美有码在线| 国产丝袜一区二区三区免费视频| 欧美巨猛xxxx猛交黑人97人| 国产日韩欧美在线看| 国产亚洲精品综合一区91| 97视频在线观看免费高清完整版在线观看| 亚洲精品国产综合区久久久久久久| 国产精品亚发布| 亚洲a在线播放| 精品国产一区二区三区久久狼5月| 欧美一级电影在线| 久久久国产一区二区三区| 亚洲日本欧美中文幕| 成人福利在线视频| 中文字幕精品一区久久久久| 亚洲色图17p| 91美女高潮出水| 久久综合免费视频| 成人夜晚看av| 日韩在线观看你懂的| 欧美大片大片在线播放| 亚洲国产日韩欧美在线动漫| 97国产精品视频人人做人人爱|