Convert c# regex to javascript regex
The following regular expression is workable using C# reg ex:
^(?<survey>#_surveyForm.+)|#(?:(?<url>http.+\.\w{3,4}).+_surveyForm=\w+)$
It matches string such as:
#http://localhost/tableaux-p145717.htm=&_surveyForm=second
or
#_surveyForm=second
I used named capturing groups.
I know Javascript doesn't take advantage of named capturing groups (instead it uses \1, \2, etc.)开发者_运维百科. Besides the syntax is slightly different from the one above.
How can I make that reg ex javascript-compliant?
Thanks in advance,
R.
As you said, JavaScript doesn't support named captures. You have to change those into "normal" capturing groups and refer to them by number instead of by name:
/^(#_surveyForm.+)|#(?:(http.+\.\w{3,4}).+_surveyForm=\w+)$/
You should also be aware that \w
only matches ASCII alphanumerics in JavaScript whereas it matches Unicode alnums in .NET.
You could use something like:
/^#(http.+.\w{3,4}.+)?_surveyForm=(\w+)$/
Your URL will be in first capturing group, and the survey in the second.
This expression would probably work better for you:
/^#(https?:\/\/\S*)?\b_surveyForm=(\w+)$/
精彩评论