Skip to content

Instantly share code, notes, and snippets.

@kawanet
Created May 8, 2013 14:33
Show Gist options
  • Save kawanet/5540864 to your computer and use it in GitHub Desktop.
Save kawanet/5540864 to your computer and use it in GitHub Desktop.
文字列の配列を、記号エスケープしつつ、正規表現オブジェクトに変換する JavaScript 関数
/**
* @param {array} array - Array of strings. ex. ["aaa", "bb.cc", "(ddd)"]
* @returns {Number} - RegExp object escaped and joined. ex. /aaa|bb\.cc|\(ddd\)/
*/
function array_to_regexp(array, opt) {
var re = array.sort(function(a, b) {
return b.length - a.length;
}).map(function(str) {
return str.replace(/\W/g, function(match) {
return "\\" + match;
});
}).join("|");
return new RegExp(re, opt);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment