我正在尝试在Javascript中使用John Gruber's URL regex,但NetBeans一直告诉我语法错误和非法错误:
var patt = "/(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])
|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]
{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|
(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|
(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:
'".,<>?«»“”‘’]))/";
任何人都知道如何解决这个问题?
答案 0 :(得分:19)
正如其他人所说,这是双引号。但另外,你可以在javascript中将regexp写为文字(但是你需要在第1行和第3行中转义正斜杠)。
var regexp = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i;
我还将不区分大小写的修饰符移到了最后。只是因为。 (编辑:嗯,不只是“因为” - 请参阅下面的艾伦摩尔的评论)
注意:无论您使用文字还是字符串,都必须在1行。
答案 1 :(得分:0)
将整个表达式放在一行中,并在开头和结尾删除引号,使其看起来像var patt = /the-long-patttern/;
,netbeans仍会抱怨,但浏览器不会,这就是重要的。
答案 2 :(得分:0)
您应该在NetBeans中这样写:
<div class="col-md-2">
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse">
<div class="panel-heading">Categories</div>
<ul class="nav nav-stacked">
<li><a href="http://example.com/index.php?cPath=1">Category #1</a></li>
<li><a href="http://example.com//index.php?cPath=2">Category #2</a></li>
<li><a href="http://example.com//index.php?cPath=3">Category #3</a></li>
<li><a href="http://example.com/index.php?cPath=21">Category #4</a></li>
</ul>
</div><!--navbar-collapse -->
</nav>
</div>
</div>