Najwyraźniej powrotem w Firefoksie 3.6, dodaje było uzasadnione:Wyrażenia regularne javascript jako funkcje?
/[0-9]{3}/('23 2 34 678 9 09')
a wynik był '678'.
FF8 nie ma żadnych. Jaka jest teraz właściwa składnia?
Najwyraźniej powrotem w Firefoksie 3.6, dodaje było uzasadnione:Wyrażenia regularne javascript jako funkcje?
/[0-9]{3}/('23 2 34 678 9 09')
a wynik był '678'.
FF8 nie ma żadnych. Jaka jest teraz właściwa składnia?
Chcesz
/[0-9]{3}/.test('23 2 34 678 9 09');
lub
/[0-9]{3}/.exec('23 2 34 678 9 09');
nie wiem dlaczego trzeba tę składnię, ale tutaj coś dla lulz:
RegExp = (function(){
var old = RegExp;
return function(){
return old.prototype.exec.bind(old.apply(this, arguments));
};
})()
Następnie:
new RegExp("[0-9]{3}")('23 2 34 678 9 09')
//["678"]
Zauważ, że włamał konstruktor nie zostanie wywołana przy użyciu literały więc działa tylko podczas korzystania new RegExp
; P
Jaki był wynik? – Michas
To naprawdę zależy od tego, co chcesz zrobić ... są 'test' i' exec', a łańcuchy mają 'match',' split' (i 'search'?). Proponuję: [dokumentację RegExp, na MDN] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp). – Kobi
Wierzcie lub nie, wewnętrzne testy jednostkowe HtmlUnit mają ten kod, a pożądanym wynikiem jest dopasowany ciąg znaków, jeśli taki istnieje. – bmargulies