根據MDN x* : *Matches the preceding item x 0 or more times.*
Regex的星號的使用
本質前述字符應該是完全可選的。字符串會被匹配,無論它們是否存在。那麼,爲什麼說:
var text = "foobar";
var re = /q*/;
var found = text.match(re);
console.log(found); // prints '["", index: 0, input: "foobar"]'
但
var re = /qz*/;
console.log(found); // prints 'null'
兩個表達式同樣不存在,因此應匹配0次,「‘’」應該是回。
或者:
2.
var re = /fz*/;
console.log(found); // prints '["f", index: 0, input: "foobar"]'
但
var re = /fzq*/;
console.log(found); // prints 'null'
這裏發生了什麼?從我的理解'fzq'
不存在,所以應該匹配0次,''''應該返回,對吧?如果它以某種方式匹配每個字符而不是整個字符串,則'fzq*'
應返回與'fz'
相同的結果 - 'f'
匹配一次,其餘匹配0次。但顯然這不是發生了什麼事情。
難道有人會對這裏發生的事情有所瞭解嗎?