Javascript 正则表达式中的SyntaxError

Javascript 正则表达式中的SyntaxError,javascript,Javascript,我在此处找到了一个查找匹配url的正则表达式:,正则表达式是: (?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

我在此处找到了一个查找匹配url的正则表达式:,正则表达式是:

(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

请问问题出在哪里?

正则表达式需要用正斜杠包装,其中的所有正斜杠都需要用反斜杠转义。 第二个(?i)是一个打开不区分大小写模式的标志,我想它是用于Perl的,但Javascript不支持同样的方式

/\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/

正则表达式需要用正斜杠包装,其中的所有正斜杠都需要用反斜杠转义。 第二个(?i)是一个打开不区分大小写模式的标志,我想它是用于Perl的,但Javascript不支持同样的方式

/\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/

正则表达式需要用正斜杠包装,其中的所有正斜杠都需要用反斜杠转义。 第二个(?i)是一个打开不区分大小写模式的标志,我想它是用于Perl的,但Javascript不支持同样的方式

/\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/

正则表达式需要用正斜杠包装,其中的所有正斜杠都需要用反斜杠转义。 第二个(?i)是一个打开不区分大小写模式的标志,我想它是用于Perl的,但Javascript不支持同样的方式

/\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/

在javascript中,正则表达式被包装在
/
s中。另外,
(?i)
部分需要在末尾替换为
i
,以使正则表达式不区分大小写

text = $('textarea').val();
url_regex=/\b((?:https?:\/\/|(www\d{0,3}[.])?|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i
match = url_regex.exec(text);
text=$('textarea').val();
url\u regex=/\b((?:https?:\/\/)(www\d{0,3}[。])?[a-z0-9.\-]+[。][a-z]{2,4}/)(?:[^\s()]+\([^\s()]+\(\([^\s()]+\)*)+(?:\((^\s()]++(^\s())+)+(^\s())+)+(^\s())+)+([^\s())+)+(^\s())+)+(^-+)+([^\s())*)+)+(^-+)(^-+)(^-+)+)(^-+)+)(^-+)+)+(^-+)(^-+)(^-+)+)(^-+)+)+)
match=url_regex.exec(文本);

因此,正如其他人所说,javascript中的正则表达式和perl中的正则表达式有一些不同。

在javascript中,正则表达式被包装在
/
s中。此外,
(?i)
部分需要在末尾替换为
i
,以使正则表达式不区分大小写

text = $('textarea').val();
url_regex=/\b((?:https?:\/\/|(www\d{0,3}[.])?|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i
match = url_regex.exec(text);
text=$('textarea').val();
url\u regex=/\b((?:https?:\/\/)(www\d{0,3}[。])?[a-z0-9.\-]+[。][a-z]{2,4}/)(?:[^\s()]+\([^\s()]+\(\([^\s()]+\)*)+(?:\((^\s()]++(^\s())+)+(^\s())+)+(^\s())+)+([^\s())+)+(^\s())+)+(^-+)+([^\s())*)+)+(^-+)(^-+)(^-+)+)(^-+)+)(^-+)+)+(^-+)(^-+)(^-+)+)(^-+)+)+)
match=url_regex.exec(文本);

因此,正如其他人所说,javascript中的正则表达式和perl中的正则表达式有一些不同。

在javascript中,正则表达式被包装在
/
中。另外,
(?i)
部分需要在末尾替换为
i
,以使正则表达式不区分大小写

text = $('textarea').val();
url_regex=/\b((?:https?:\/\/|(www\d{0,3}[.])?|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i
match = url_regex.exec(text);
text=$('textarea').val();
url\u regex=/\b((?:https?:\/\/)(www\d{0,3}[。])?[a-z0-9.\-]+[。][a-z]{2,4}/)(?:[^\s()]+\([^\s()]+\(\([^\s()]+\)*)+(?:\((^\s()]++(^\s())+)+(^\s())+)+(^\s())+)+([^\s())+)+(^\s())+)+(^-+)+([^\s())*)+)+(^-+)(^-+)(^-+)+)(^-+)+)(^-+)+)+(^-+)(^-+)(^-+)+)(^-+)+)+)
match=url_regex.exec(文本);

因此,正如其他人所说,javascript中的正则表达式和perl中的正则表达式有一些不同。

在javascript中,正则表达式被包装在
/
s中。此外,
(?i)
部分需要在末尾替换为
i
,以使正则表达式不区分大小写

text = $('textarea').val();
url_regex=/\b((?:https?:\/\/|(www\d{0,3}[.])?|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i
match = url_regex.exec(text);
text=$('textarea').val();
url\u regex=/\b((?:https?:\/\/)(www\d{0,3}[。])?[a-z0-9.\-]+[。][a-z]{2,4}/)(?:[^\s()]+\([^\s()]+\(\([^\s()]+\)*)+(?:\((^\s()]++(^\s())+)+(^\s())+)+(^\s())+)+([^\s())+)+(^\s())+)+(^-+)+([^\s())*)+)+(^-+)(^-+)(^-+)+)(^-+)+)(^-+)+)+(^-+)(^-+)(^-+)+)(^-+)+)+)
match=url_regex.exec(文本);


因此,正如其他人所说,javascript中的正则表达式和perl中的正则表达式之间存在一些差异。

您是将该行直接复制并粘贴到js中,还是有更多的代码?解释(?i)关闭区分大小写(?1)重新打开区分大小写。我更新我的问题,复制并粘贴行而不进行修改,然后将其分配给url_regex variable您需要在模式中添加分隔符。用
/
字符包装它,告诉Javascript它是一个正则表达式。你的正则表达式需要被
/../
包围起来——看你是不是直接将这一行复制粘贴到你的js中了,还是有更多的代码围绕着它?解释(?i)关闭区分大小写(?1)重新打开区分大小写。我更新我的问题,复制并粘贴行而不进行修改,然后将其分配给url_regex variable您需要在模式中添加分隔符。用
/
字符包装它,告诉Javascript它是一个正则表达式。你的正则表达式需要被
/../
包围起来——看你是不是直接将这一行复制粘贴到你的js中了,还是有更多的代码围绕着它?解释(?i)关闭区分大小写(?1)重新打开区分大小写。我更新我的问题,复制并粘贴行而不进行修改,然后将其分配给url_regex variable您需要在模式中添加分隔符。用
/
字符包装它,告诉Javascript它是一个正则表达式。你的正则表达式需要被
/../
包围起来——看你是不是直接将这一行复制粘贴到你的js中了,还是有更多的代码围绕着它?解释(?i)关闭区分大小写(?1)重新打开区分大小写。我更新我的问题,复制并粘贴行而不进行修改,然后将其分配给url_regex variable您需要在模式中添加分隔符。用
/
字符包装它,告诉Javascript它是一个正则表达式。您的正则表达式需要用
/../
加以保护——请参阅thank you@SuperScript it work:)只需一个问题,我可以将“www”设置为可选吗?当我复制过去时,您的注释代码中有一些错误!!如果我理解,我只需要更改此部分:(www\d{0,3}[.]),但是如果没有wwwI,它就无法工作。我已经将它编辑到我的答案中。只需在那里重新复制正则表达式。现在进行此修改后,它可以在没有www的情况下工作,但如果我在url之前放置一些文本,它将无法工作!!在更改之前,它甚至可以与文本一起使用firstthank you@SuperScript它现在可以使用:)只有一个问题,我可以将“www”设置为可选吗?当我复制过去时,您的注释代码中有一些错误!!如果我理解,我只需要更改此部分:(www\d{0,3}[.]),但是如果没有wwwI,它就无法工作。我已经将它编辑到我的答案中。只需在那里重新复制正则表达式。现在使用此mo