由于可读性在下面显示的正则表达式文字中有些不存在,我想把它分成几行。我该怎么做以及需要更改/转义什么?
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;
由于
答案 0 :(得分:1)
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人员,所以如果这不起作用,请告诉我)