开发者

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+)$/
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜