javascript - javascript 中的正则表达式换行?

标签 javascript regex literals

由于下面显示的正则表达式文字中有些缺乏可读性,我想将其分成几行。我该如何做到这一点以及需要更改/转义什么?

regex = /\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;

谢谢

最佳答案

JavaScript 不支持多行正则表达式。不过,您可以从字符串构造正则表达式:

r = new 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")

(我希望我的字符串构建语法正确 - 我不是 JavaScript 人员,所以如果这不起作用,请告诉我)

关于javascript - javascript 中的正则表达式换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349184/

相关文章:

C# short/long/int 文字格式?

正则表达式验证密码

regex - Lua 中使用 .gsub() 的正则表达式

smalltalk - 吱吱字面限制

javascript - 单击时我的 div 不会使用 js 提交其中的表单

javascript - 在 JavaScript 中验证

c - 为什么在以下结构定义中需要显式转换

javascript - 如何判断字符串是否同时包含单引号 (') and a double-quote (")?

来自 Comcast 本地计算机的 JavaScript 和 CORS

javascript - 在 jquery 中显示拖放的图像