[英]Matching regular expression string in Javascript
有谁知道如何从 javascript 代码中找到正则表达式字符串? 例如 var pattern = /一些正则表达式/;
是否可以使用正则表达式:)?
如果我的问题是正确的,并且您需要一个正则表达式来查找 JavaScript 程序中的所有正则表达式,那么我认为这是不可能的。 JavaScript 中的正则表达式不必使用 // 语法,它可以定义为字符串。 即使是成熟的 JavaScript 解析器也不够聪明,无法在此处检测正则表达式,例如:
var re = "abcde";
var regexClass = function() { return RegExp; }
var regex = new regexClass()(re);
所以我会放弃这个想法,除非你只想涵盖几个非常基本的案例。
你想要一个正则表达式来匹配一个正则表达式吗? 疯狂的。 这可能涵盖最简单的情况。
new RegExp("\/.+\/")
但是,我查看了 Javascript Textmate 包,它有 2 个正则表达式用于查找正则表达式的开始和结束。
begin = '(?<=[=(:]|^|return)\s*(/)(?![/*+{}?])'
end = '(/)[igm]*';
您可能会将其用作实现目标的灵感。
感谢您的回答,我还发现这几乎是不可能完成的任务,但这是我的正则表达式,它可以很好地解析源代码:
this.mainPattern = new RegExp(//single line comment
"(?://.*$)|"+
//multiline comment
"(/\\*.*?($|\\*/))"+
//single or double quote strings
"|(?:(?:\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(?:'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'))"+
//regular expression literal in javascript code
"|(?:(?:[/].+[/])[img]?[\\s]?(?=[;]|[,]|[)]))"+
//brackets
"|([{]|[(]|[\[])|([}]|[)]|[\\]])", 'g');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.