为什么这个 JavaScript 正则表达式会给我一个语法错误
Why does this javascript regex give me a syntax error?
我正在尝试使用Jeff Atwood关于检测链接的博客文章中的正则表达式:
'(?'bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]
但是,此JS代码中断并给出了SyntaxError: Unexpected token ILLEGAL
var myRe = '(?'bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|];
var myArray = myRe.exec("http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)");
console.log(myArray);
这是因为您的JS实际上是无效的。这不是有效的正则表达式文本:
var myRe = '(?'bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|];
在 JS 中,正则表达式文本以 /
开头,同样以 /
结尾,因此您可以将代码更改为以下内容:
var myRe = /'(?'bhttp:'/'/[-A-Za-z0-9+&@#'/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#'/%=~_()|]/;
它应该可以工作(您可能需要打开控制台选项卡。请注意,由于 /
是文字终端,因此您必须使用 '
字符转义 RegExp 中的任何/
字符。
尝试将其声明为正则表达式变量(在//内):
var myRe = /'(?'bhttp:'/'/[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]/;
并查看一些文档。
相关文章:
- 使用JS函数来使用另一个函数的语法?node.js
- 为两个ID设置一个变量的正确语法
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- 将一个函数及其参数传递给另一个函数以执行它的语法是什么
- JavaScript-找到一个具有数组语法的特定DOM元素并更新它
- 如何创建一个原型函数,将另一个原型函数绑定为语法糖(并保持实例的上下文)
- 角度 - ng 网格通过分组按语法选择下一个/上一个项目
- 为 STRING 创建一个语法表达式.字符串.PEG上的绳子.js
- 同时分配和检查并有一个很好的语法错误
- 为什么这个 JavaScript 正则表达式会给我一个语法错误
- 角度数据绑定一个使用“控制器作为”语法
- Javascript附加一个对象语法糖
- 这是一个合法的JavaScript语法
- 我无法使我的PHP/XXHTML页面完全加载.我认为这是一个语法错误,但我找不到它
- 需要一个语法高亮为插入代码到网页
- 当尝试执行JavaScript文件时,给了我一个:语法错误:意外的令牌)
- 在Firefox 1.5中使用Components.utils.import是一个语法错误
- 为什么这个JS代码给我一个语法错误