再補一個問題
(.+)、(.)+、.+不是一樣的嗎?
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
為什么上面代碼運行結果都不一樣
有的結果還用逗號分開 是怎么回事呢
復制代碼 代碼如下:
exec()返回的是匹配到符合模式的內容的數組(由整體和按順選排列的子片斷組成),用alert顯示時會顯示數組toSting()的結果(就是用逗號隔開的字符串)。
在正則表達式中 . (點)表示除換行符以外的任意字符(在加上m參數打開多行匹配模式時表示任意字符),用轉義符號.表示點這個字符本體。
在正則表達式中 . (點)表示除換行符以外的任意字符(在加上m參數打開多行匹配模式時表示任意字符),用轉義符號.表示點這個字符本體。
復制代碼 代碼如下:
var Pattern3=/<(.)+>/i;
alert(Pattern3.exec(“<p align=center onclick=dsa>”)[1])
為什么得到的是a而不是p?
alert(Pattern3.exec(“<p align=center onclick=dsa>”)[1])
為什么得到的是a而不是p?
試試alert(Pattern3.exec(“<p align=center onclick=dsa6>”)[1])將得到6
(.)+一路匹配過來,返回的是最后匹中的結果。
+(加號)表示+前面的模式(或模式片斷)當有至少一個、可有多個。
出現在正則表達式中的()所包圍的的內容被視為模式中的子片斷,會在exec()中體現出來。