Perl でできるように、JavaScript 正規表現にコメントを埋め込む方法はありますか? ないと思いますが、私の検索では、できるかできないかを示すものは見つかりませんでした。
質問する
794 次
2 に答える
14
正規表現リテラルにコメントを埋め込むことはできません。
RegExp コンストラクターに渡す文字列構造にコメントを挿入できます。
var r = new RegExp(
"\\b" + // word boundary
"A=" + // A=
"(\\d+)"+ // what is captured : some digits
"\\b" // word boundary again
, 'i'); // case insensitive
しかし、正規表現リテラルは非常に便利です (どのように をエスケープしなければならなかったかに注意してください\
) むしろ、正規表現をコメントから分離したいと思います。
EDIT 2018:この質問と回答は非常に古いものです。EcmaScript は、これを処理する新しい方法、より正確にはテンプレート文字列を提供するようになりました。
たとえば、ノードでこの単純なユーティリティを使用するようになりました。
module.exports = function(tmpl){
let [, source, flags] = tmpl.raw.toString()
.replace(/\s*(\/\/.*)?$\s*/gm, "") // remove comments and spaces at both ends of lines
.match(/^\/?(.*?)(?:\/(\w+))?$/); // extracts source and flags
return new RegExp(source, flags);
}
const regex = rex`
^ // start of string
[a-z]+ // some letters
bla(\d+)
$ // end
/ig`;
console.log(regex); // /^[a-z]+bla(\d+)$/ig
console.log("Totobla58".match(regex)); // [ 'Totobla58' ]
于 2013-11-08T17:31:18.313 に答える