Rubyについて Part 23
■ このスレッドは過去ログ倉庫に格納されています
0646641
2006/09/19(火) 18:18:39http://www.forkosh.com/mimetex.html
とりあえず↑のページを表示して、Bad URLにならないよう直したのが↓のコード
require 'uri'
module URI
DOMLABEL = "(?:[#{PATTERN::ALNUM}](?:[-_#{PATTERN::ALNUM}]*[#{PATTERN::ALNUM}])?)"
PCHAR = "(?:[#{PATTERN::UNRESERVED}:@&=+$,\\[\\]\\{\\}`]|#{PATTERN::ESCAPED})"
URIC = "(?:[#{PATTERN::UNRESERVED}#{PATTERN::RESERVED}\\^\\{\\}\\\\\\]|#{PATTERN::ESCAPED})"
X_ABS_URI = PATTERN::X_ABS_URI.gsub(PATTERN::DOMLABEL, DOMLABEL).gsub(PATTERN::URIC, URIC).gsub(PATTERN::PCHAR, PCHAR)
X_REL_URI = PATTERN::X_REL_URI.gsub(PATTERN::DOMLABEL, DOMLABEL).gsub(PATTERN::URIC, URIC).gsub(PATTERN::PCHAR, PCHAR)
ABS_URI = Regexp.new('^' + X_ABS_URI + '$', Regexp::EXTENDED, 'N')
REL_URI = Regexp.new('^' + X_REL_URI + '$', Regexp::EXTENDED, 'N')
end
DOMLABEL はホスト名の部分。オリジナルに _ を追加
PCHAR はパス名の部分。MSNの画像で Bad URL になるんで []{}` を追加
URIC はクエリーの部分。mimetexで Bad URL になるんで ^{}\ を追加
ほかにエラーになる文字があったら自分で追加してくれ
それと3連続 gsub がカッコ悪いんで、スマートな書き方あったら誰かよろしく
っつか、>>618で元の質問したの俺なんだよなぁ
コピペ張られて自分で答えるという、一人やらないかウホッな気分
■ このスレッドは過去ログ倉庫に格納されています