正規表示式中test exec match的區別

2022-04-28 21:48:35 字數 2113 閱讀 3719

test 返回boolean,查詢對應的字串中是否存在模式。

var str = "1a1b1c"; 

var reg = new regexp("1.", "");

alert(reg.test(str));

//true

exec查詢並返回當前的匹配結果,並以陣列的形式返回。

var str = "1a1b1c"; 

var reg = new regexp("1.", "");

var arr = reg.exec(str);//["1a", index: 0, input: "1a1b1c", groups: undefined]

如果不存在模式,則arrnull,否則arr總是乙個長度為1的陣列,其值就是當前匹配項。arr還有三個屬性:index當前匹配項的位置;lastindex當前匹配項結束的位置(index + 當前匹配項的長度);input如上示例中input就是str

exec方法受引數g的影響。若指定了 g,則下次呼叫 exec 時,會從上個匹配的lastindex開始查詢。

var str = "1a1b1c";

var reg = new regexp("1.", "");

alert(reg.exec(str)[0]);//1a

alert(reg.exec(str)[0]);//1a

上述兩個輸出都是1a。現在再看看指定引數 g:

var str = "1a1b1c";

var reg = new regexp("1.", "g");

alert(reg.exec(str)[0]);//

1aalert(reg.exec(str)[0]);//

1b

上述第乙個輸出1a,第二個輸出1b

match 是 string 物件的乙個方法。

var str = "1a1b1c";

var reg = new regexp("1.", "");

alert(str.match(reg));//["1a", index: 0, input: "1a1b1c", groups: undefined]

match這個方法有點像exec,但:execregexp物件的方法;matchstring物件的方法。

二者還有乙個不同點,就是對引數g的解釋

。 如果指定了引數g,那麼match一次返回所有的結果。

var str = "1a1b1c";

var reg = new regexp("1.", "g");

alert(str.match(reg));//["1a", "1b", "1c"]

此結果為乙個陣列,有三個元素,分別是:1a、1b、1c

1、第一種定義(建構函式定義):

new regexp(pattern, attributes);
pattern:表示式內容,如上表示匹配abc;attributes

用最多的為g和i

2、第二種定義(//文字定義):/pattern/attributes.

如:var reg = /abc/g;

詳情見:

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

sql正規表示式 SQL中的正規表示式

sql正規表示式 sql中的正規表示式 sql的查詢語句中,有時會需要引進正規表示式為其複雜搜尋指定模式。下面給出一些 regexp 在mysql 語句中應用 非全部 1 匹配字串的開始部分。mysql select fo nfo regexp fo 0mysql select fofo regex...