建立正規表示式
js**
re=new regexp("a","i");//第二個引數,表示匹配時不分大小寫
js**
var re = new regexp("a","gi");//匹配所有的a或a
正規表示式還有另一種正規表示式字面量的宣告方式
js**
var re = /a/gi;
•exec,用正規表示式模式在字串中執行查詢,並返回包
測試正規表示式是如何工作的!
js**
var str = "he";
str = "we";
str = "he";
re = /he/i;
str = "certainly!he loves her!";
str = "he is a good boy!";
str = "he";
str="123abc";
alert(re.test(str));//false
js**
re=/^[a-z]+/s+/d+$/i;
arr = re.exec(osversion);
re=//d+/;
var arr = re.exec(osversion);
alert(arr[0]);//8
更複雜的用法,使用子匹配
js**
arr =re.exec(osversion);
arr = re.exec(osversion);
alert(arr[2]);//10
string物件的一些和正規表示式有關的方法
js**
var str ="some money";
str ="some some /tsome/t/f";
re = //s+/;
var str = "a-bd-c";
re = //d+/;
re=//d+/g;
alert(str.search(re));//仍然是10
注意,當search方法沒有找到匹配時,將返回-1
js**
var str = "my name is cj.hello everyone!";
re = /[a-z]/g;
arr = str.match(re);
str = "one two three four";
alert(str.match(re));//one,two,three,four
regexp物件例項的一些屬性
js**
var re = /[a-z]/i;
//請注意,直接alert(re)會將正規表示式連同前向斜線與標誌輸出,這是re.tostring方法定義的
每個regexp物件的例項具有lastindex屬性,它是被查詢字串中下一次成功匹配的開始位置,預設值是-1。 lastindex 屬性被 regexp 物件的 exec 和 test 方法修改.並且它是可寫的.
js**
var re = /[a-z]/;
var str = "hello,world!!!";
var arr = re.exec(str);
re = /[a-z]/g;
arr = re.exec(str);
arr = re.exec(str);
alert(re.lastindex);//7
當匹配失敗(後面沒有匹配),或lastindex值大於字串長度時,再執行exec等方法會將lastindex設為0(開始位置)
js**
var re = /[a-z]/;
var str = "hello,world!!!";
re.lastindex = 120;
var arr = re.exec(str);
alert(re.lastindex);//0
regexp物件的靜態屬性
js**
var re = /[a-z]/;
var str = "hello,world!!!";
var arr = re.exec(str);
re.exec("tempstr");
re = /[a-z]/g;
str = "hi";
re.test(str);
re.test(str);
re = /[a-z](/d+)/gi;
str = "class1 class2 class3";
re.test(str);
re.test(str);
re = /[a-z]/g;
str = "123abc456";
re.test(str);
re.test(str);
alert(regexp["$'"]);//c456
multiline屬性返回正規表示式是否使用多行模式,這個屬性不針對某個正規表示式例項,而是針對所有正規表示式,並且這個屬性可寫.(ie與opera不支援這個屬性)
js**
alert(regexp.multiline);
var re = //w+/m;
alert(re.multiline);
alert(regexp.multiline);
( [ /;
arr = re.exec(str);
alert(arr[1]);//undefined
候選(也就是所說的「或」)
js**
str ="add";
str ="bc";
alert(re.test(str));//true
當包含分組的正規表示式進行過test,match,search這些方法之後,每個分組都被放在乙個特殊的地方以備將來使用,這些儲存是分組中的特殊值,我們稱之為反向引用
js**
var re = /(a?(b?(c?)))/;
(c?)*/
str = "abc";
alert(regexp.$1+"/n"+regexp.$2+"/n"+regexp.$3);
re = //d+(/d)/d+/1/d+/;
str = "2008-1-1";
str = "2008-4_3";
alert(re.test(str));//false
使用反向引用可以要求字串中某幾個位置上的字元必須相同.另外,在replace這類方法中可用特殊字串行來表示反向引用
js**
re = /(/d)/s(/d)/;
str = "1234 5678";
alert(str.replace(re,"$2 $1"));//在這個裡面$1表示第乙個分組1234,$2則表示5678
js**
re = /([a-z]+(?=/d))/i;
str = "abc every1 abc";
re = /([a-z](?!/d))/;i
str = "abc1 one";
alert(re.test(str));
alert(regexp.$1);//one
構建乙個驗證電子郵箱位址有效性的正規表示式。電子郵箱位址有效性要求(我們姑且這樣定義):使用者名稱只能包含字母數字以及下劃線,最少一位,最多25位,使用者名稱後面緊跟@,後面是網域名稱,網域名稱名稱要求只能包含字母數字和減號(-),並且不能以減號開頭或結尾,然後後面是網域名稱字尾(可以有多個),網域名稱字尾必須是點號連上2-4位英文本母
js**
var re = /^/w(?:@(?!-))(?:(?:[a-z0-9-]*)(?:[a-z0-9](?!-))(?:/.(?!-)))+[a-z]$/;
精通JS正規表示式
正規表示式可以 測試字串的某個模式。例如,可以對乙個輸入字串進行測試,看在該字串是否存在乙個 號碼模式或乙個信用卡號碼模式。這稱為資料有效性驗證 替換文字。可以在文件中使用乙個正規表示式來標識特定文字,然後可以全部將其刪除,或者替換為別的文字 根據模式匹配從字串中提取乙個子字串。可以用來在文字或輸入...
精通正規表示式
我只看了前面兩三章 這書的核心是4 5 6章 精通正規表示式 這本書的第四章和第六章比較值得看 1.多選結構 mm gg 表示匹配 mm 或 gg 2.忽略大小寫 s source dest i 搜尋source,將其替換為dest,此處的i只對source起作用,而不會作用於dest。3.單詞分界...
精通正規表示式 1 正規表示式入門
1 能檢查多個檔案,挑出包含重複單詞的行,高亮標記每個重複單詞 使用標準ansi的轉義字元列 同時必須顯示這行文字來自哪個檔案。2 能跨行查詢,即使兩個單詞乙個在某行末尾而另乙個在下一行的開頭,也算重複單詞。3 能進行不區分大小寫的查詢,例如 the the.重複單詞之間可以出現任意數量的空白字元 ...