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

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:20:52
字體:
來源:轉載
供稿:網友
作為模式匹配下文本替換、搜索、提取的強有力工具,正則表達式(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地址有效性檢測
<script language='JScript'>
function validateEmail(emailStr)
{
var re=/^[/w.-]+@([0-9a-z][/w-]+/.)+[a-z]{2,3}$/i;
//或 var re=new RegExp("^[//w.-]+@([0-9a-z][//w-]+//.)+[a-z]{2,3}$","i");
if(re.test(emailStr))
{
  alert("有效email地址!");
  return true;
}
else
{
  alert("無效email地址!");
  return false;
}
}
</script>

2.字符串替換操作
<script language='JScript'>
var r, pattern, re;
var s = "The rain in Spain falls mainly in the plain falls.";
pattern = /falls/ig;
re = s.replace(re,'falling');
alert('s = ' + s + '/n' + 're = ' + re);
</script>

3.模式查找字符串
<script language='JScript'>
var index, pattern;
var str = "four for fall fell fallen fallsing fall falls waterfalls ";
pattern = //bfalls/b/i;
index = str.search(pattern);
alert('The position of match is at ' + index);
</script>

3.正則表達式屬性例程
<script language='JScript'>
function matchAttrib()
{
   var s=''; 
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBbdbsbdbdz";
   while((arr = re.exec(str))!=null)
   {
    s += "=======================================<br>";
    s += "$1 returns: " + RegExp.$1 + "<br>";
    s += "$2 returns: " + RegExp.$2 + "<br>";
    s += "$3 returns: " + RegExp.$3 + "<br>";
    s += "input returns : " + RegExp.input + "<br>";
    s += "index returns : " + RegExp.index + "<br>";
    s += "lastIndex returns : " + RegExp.lastIndex + "<br>";
    s += "lastMatch returns: " + RegExp.lastMatch + "<br>";
    s += "leftContext returns: " + RegExp.leftContext + "<br>";
    s += "rightContext returns: " + RegExp.rightContext + "<br>"; 
    s += "lastParen returns: " + RegExp.lastParen + "<br>";
    s += "arr.index returns: " + arr.index + "<br>";
    s += "arr.lastIndex returns: " + arr.lastIndex + "<br>";
    s += "arr.input returns: " + arr.input + "<br>";
    s += "re.lastIndex returns: " + re.lastIndex + "<br>";
    s += "re.source returns: " + re.source + "<br>";
   }
   return(s);                            //Return results.
}
document.write(matchAttrib());
</script>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲影院在线看| 欧美尺度大的性做爰视频| 欧美精品一区三区| 98精品在线视频| 日韩视频一区在线| 91网站免费观看| 午夜精品一区二区三区视频免费看| 日日噜噜噜夜夜爽亚洲精品| 国产欧美日韩免费看aⅴ视频| 夜夜嗨av一区二区三区四区| 欧美做受高潮1| 黑人巨大精品欧美一区二区免费| 深夜福利国产精品| 日韩av免费在线看| 欧美日韩国产一区二区| 亚洲永久免费观看| 91精品国产自产在线观看永久| 日韩欧美在线视频观看| 国产精品av在线播放| 韩国福利视频一区| 亚洲精品美女久久| 欧美日韩中文字幕在线视频| 亚洲一区二区三区四区在线播放| 国产丝袜视频一区| 亚洲日本欧美日韩高观看| 亚洲欧美成人精品| 欧美亚洲一区在线| 久久久亚洲福利精品午夜| 国产在线观看一区二区三区| 久久久精品中文字幕| 精品人伦一区二区三区蜜桃网站| 欧美中文字幕第一页| 亲子乱一区二区三区电影| 亚洲精品xxx| 亚洲乱码av中文一区二区| 久久久久久亚洲精品不卡| 久久99久久99精品免观看粉嫩| 欧美性精品220| 国产日韩综合一区二区性色av| 色在人av网站天堂精品| 欧美极品美女电影一区| 日韩欧美在线第一页| 欧美大片网站在线观看| 欧美午夜精品久久久久久浪潮| 亚洲最新av在线| 国产精品综合不卡av| 日韩国产欧美精品一区二区三区| 成人激情视频小说免费下载| 久久精品免费播放| 欧美大片免费观看在线观看网站推荐| 国产精品尤物福利片在线观看| 超碰日本道色综合久久综合| 欧美另类69精品久久久久9999| 久久大大胆人体| 欧美日韩综合视频网址| 国产网站欧美日韩免费精品在线观看| 26uuu亚洲伊人春色| 91久久精品美女高潮| 视频直播国产精品| 91免费精品国偷自产在线| 91在线免费观看网站| 亚洲欧美制服综合另类| 国产亚洲aⅴaaaaaa毛片| 在线成人激情视频| 国产精品日韩欧美大师| 中文字幕亚洲专区| 国产狼人综合免费视频| 亚洲综合日韩中文字幕v在线| 国产成人免费av| 欧洲亚洲在线视频| 精品国产福利在线| 91欧美精品午夜性色福利在线| 日韩电影中文字幕在线| 成人久久久久久久| 久久久国产精品一区| 亚洲精品中文字幕有码专区| 欧美日韩国产999| 亚洲国产成人久久| 黄网站色欧美视频| 国产免费一区二区三区在线观看| 国产99久久精品一区二区永久免费| 国产精品一区久久久| 91精品国产91久久久久久最新| 日韩一区二区精品视频| 国产主播精品在线| 九九热r在线视频精品| 综合国产在线观看| 欧美日本精品在线| 亚洲日本aⅴ片在线观看香蕉| 国产v综合ⅴ日韩v欧美大片| 亚洲欧美综合精品久久成人| www.精品av.com| 日韩av网站在线| 国外日韩电影在线观看| 精品一区电影国产| 国产精品劲爆视频| 色综合视频一区中文字幕| 欧美日韩激情小视频| 91久久久亚洲精品| 亚洲理论片在线观看| 精品国产精品自拍| 国产色婷婷国产综合在线理论片a| 丝袜美腿亚洲一区二区| 亚洲最新av网址| 亚洲福利在线视频| 欧美日本黄视频| 8x拔播拔播x8国产精品| 超碰97人人做人人爱少妇| 日日噜噜噜夜夜爽亚洲精品| 国产在线精品播放| 欧美日韩国产精品一区二区三区四区| 国产亚洲欧美日韩精品| 人九九综合九九宗合| 97视频免费在线观看| 色香阁99久久精品久久久| 久久久久久国产精品三级玉女聊斋| 国产日产久久高清欧美一区| 成人性生交大片免费观看嘿嘿视频| 91精品国产乱码久久久久久久久| 91精品视频在线免费观看| 久久视频国产精品免费视频在线| 日韩精品免费在线视频| 午夜精品一区二区三区在线播放| 亚洲免费视频观看| 欧美刺激性大交免费视频| 92国产精品视频| 亚洲级视频在线观看免费1级| 久99久在线视频| 最近2019中文免费高清视频观看www99| 高清在线视频日韩欧美| 亚洲色图色老头| 色七七影院综合| 7777免费精品视频| 国产91精品视频在线观看| 日本一区二区在线免费播放| 4k岛国日韩精品**专区| 91性高湖久久久久久久久_久久99| 欧美一级高清免费播放| 俺也去精品视频在线观看| 日韩亚洲一区二区| 亚洲美女性生活视频| 色噜噜狠狠狠综合曰曰曰| 一区二区福利视频| 九九热精品视频国产| 中文字幕精品视频| 色婷婷av一区二区三区在线观看| 欧美成人四级hd版| 精品美女永久免费视频| 日韩av大片在线| 日本一区二三区好的精华液| 97在线观看免费| 日韩av手机在线观看| 久久好看免费视频| 国产欧美一区二区三区久久| www.欧美视频| 亚洲色图第三页| 亚洲人午夜色婷婷| 日韩av影视综合网| 亚洲欧美激情精品一区二区| 欧美特黄级在线| 性欧美暴力猛交69hd| 久久久欧美精品| 欧美肥老太性生活视频| 黄色一区二区在线|