将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 .
正如您所说,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+)$/