s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+ Perlメモ の文字クラス部の範囲が重複していたので、重複を除去して短くしてくれる関数を書いた。ASCIIの範囲のみ対応。 function optimize(range) { var ascii = new Array(0x7f); var i, begin, end; var result = ""; for (i = 0x00; i < ascii.length; ++i) ascii[i] = false; for (i = 0; i < range.length; ++i) { begin = range.charCodeAt(i); if (range.charAt(i+1) == "-") end = range.charCodeAt(i += 2); else end = begin;