求js正则匹配注释,包括多行注释和单行注释

 我来答
zwjtk
2015-06-16 · TA获得超过1741个赞
知道小有建树答主
回答量:300
采纳率:82%
帮助的人:209万
展开全部

你好,我写了一个正则可以满足你的需求

var rNote = /(\/\/.*$)|(\/\*(.|\s)*?\*\/)/g; // 匹配单行或多行注释

但是有个小瑕疵,就是会匹配到链接或带有'//'的字符串:

// 链接
http://www.baidu.com/xxx/xxx/xxxx/xx...

// 带有//的字符串
abskdak//asdljslad//sadajk

上面链接和字符串的'//'开始到行尾的内容也会被匹配,这里需要注意下

希望能解决你的问题,望采纳~

追问

上传不了附件,这能传图片了

能匹配这种格式吗?能的话我追加100,不能的话,也没关系,也选你最佳

追答

针对你提供的代码,优化了一下:

var rNote = /((^|[^"':\s])\/\/.*$)|((^|[^"':\s])\/\*(.|\s)*?\*\/)/g;

可以匹配到下面的样子:

但有没匹配到的,且多匹配出一个";"

如果你想用js来删除注释,可能还是写逻辑一点一点删可能好些,因为js的正则其实是阉割过的,不支持分组,反向预查等,可能要一次性匹配出来比较难。

js正则我也不精,写成上面那样我已经尽力了,呵呵...

CharlieWangs
2019-06-24
知道答主
回答量:1
采纳率:0%
帮助的人:729
展开全部
var REQUIRE_RE = /"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g;
这是从sea.js 源码拿出来的,可以解决多行单行注释问题,但是需要去掉一些子表达式;原文表达式是用来解析模块文件依赖的;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
红豆茶泡饭3
2019-06-10
知道答主
回答量:3
采纳率:0%
帮助的人:2269
展开全部
((\/\*\*?(?<=\/\*\*?)(?:.*|\s*)(?=\*/)\*\/)|(\/\/(?<=\/\/)(?:.*|\s*)))
$1获得匹配内容
同样会匹配url //后面的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式