将c#正则表达式转换为javascript正则表达式

本文关键字:正则表达式 javascript 转换 | 更新日期: 2023-09-27 18:01:57

下面的正则表达式使用c# reg ex是可行的:

^(?<survey>#_surveyForm.+)|#(?:(?<url>http.+'.'w{3,4}).+_surveyForm='w+)$

匹配如下字符串:

#http://localhost/tableaux-p145717.htm=&_surveyForm=second

#_surveyForm=second

我使用命名捕获组。

我知道Javascript没有利用命名捕获组(而是使用'1,'2等)。此外,语法与上面的略有不同。

我如何使reg ex javascript兼容?

提前感谢,

r .

将c#正则表达式转换为javascript正则表达式

正如您所说,JavaScript不支持命名捕获。您必须将这些更改为"正常"捕获组,并通过编号而不是名称来引用它们:

/^(#_surveyForm.+)|#(?:(http.+'.'w{3,4}).+_surveyForm='w+)$/

你也应该知道'w只匹配JavaScript中的ASCII字母数字,而它匹配。net中的Unicode数字。

你可以这样写:

/^#(http.+.'w{3,4}.+)?_surveyForm=('w+)$/

您的URL将在第一个捕获组中,调查将在第二个捕获组中。

这个表达式可能更适合你:

/^#(https?:'/'/'S*)?'b_surveyForm=('w+)$/