prosty skrypt testowy:Regex w JavaScripcie nie co drugi czas z identycznym wejściu
<script type="text/javascript">
var reg = new RegExp('#([a-f0-9]{3})$', 'gi');
for (var i = 0; i < 10; i++) {
console.log(reg.exec('#fff'));
}
</script>
wyjścia konsoli:
["#fff", "fff"]
null
["#fff", "fff"]
null
["#fff", "fff"]
null
["#fff", "fff"]
null
["#fff", "fff"]
null
Dlaczego każdy inny wynik NULL gdy wejście pozostaje na stałym poziomie?
$ zakotwicza wzór do końca wiersza. Bez tego coś podobnego do '#fff blah blah blah' również będzie pasować. Oczywiście, na tym stanie, regex będzie pasował do 'blah blah blah # fff', ponieważ nie jest zakotwiczone na początku linii z'^' –