2012-12-19 15 views
7

Próbuję przekonwertować następujący wyraz "new RegExp()" styl:nowy RegExp nie działa

http://jsfiddle.net/HDWBZ/

var Wyrazenie = /\btest[a-z]*/g; 

Jestem naprawdę mylić z nim i nie mają pojęcia, jak naprawić to. Poniżej jest to, co zrobiłem, ale oczywiście to nie działa.

var Wyraznie = new RegExp("\btest[a-z]*","g"); 

Mam również pytanie, jak by wyglądało, gdyby zamiast "testu" użyłbym zmiennej?

+0

Proszę pytać tylko jedno pytanie na raz. Stwórz oddzielne pytanie SO dla każdego osobnego pytania (brzmi logicznie, prawda?). –

Odpowiedz

9

należy użyć zamiast tego ...

new RegExp("\\btest[a-z]*", "g"); 

... jak \b będzie interpolowana w jednym (slashless) charakteru gdy parser JavaScript działa przez odpowiedni ciąg dosłownym. Rozwiązaniem jest ucieczka sama.

DEMO:http://jsfiddle.net/HDWBZ/1/

+0

@ raina77ow Dzięki za edycję. Zapomniałeś o mnie :) – VisioN

+0

dziękuję, działa idealnie! Odnośnie drugiej części: nowy RegExp ("\\ b" + test + "[a-z] *", "g") ;, gdzie test jest zmienny –

+0

@ mik.ro Dokładnie tak. – VisioN