-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2010年03月27日

リージョン内のダブルクォーテーションと改行をすべてエスケープ

(defun h-Double-quotation-escape-region (start end)
  "リージョン内のダブルクォーテーションをすべてエスケープ"
  (interactive "r")
  (let ((s (make-marker)) (e (make-marker)))
         (set-marker s start) (set-marker e end)
    (goto-char s)
  (save-excursion
    (save-restriction
      (narrow-to-region start end)
      (goto-char (point-min))
      (while (search-forward "\"" nil t)
        (replace-match "\\\\\""))))
  (save-excursion
    (save-restriction
      (narrow-to-region s e)
      (goto-char s)
      (while (search-forward "\n" nil t)
        (replace-match "\\\\ \n"))))))

 JavaScriptの場合、変数に改行を含めて代入する場合、改行をエスケープしておく必要があるみたいです。
 実行するとこんな感じになります。

(defun h-Double-quotation-escape-region (start end)\
  \"リージョン内のダブルクォーテーションをすべてエスケープ\"\
  (interactive \"r\")\
  (let ((s (make-marker)) (e (make-marker)))\
         (set-marker s start) (set-marker e end)\
    (goto-char s)\
  (save-excursion\
    (save-restriction\
      (narrow-to-region start end)\
      (goto-char (point-min))\
      (while (search-forward \"\\"\" nil t)\
        (replace-match \"\\\\\\"\"))))\
  (save-excursion\
    (save-restriction\
      (narrow-to-region s e)\
      (goto-char s)\
      (while (search-forward \"\n\" nil t)\
        (replace-match \"\\\\ \n\"))))))\

 実際にJavaScriptの変数の代入には、まだ使っていませんが、たぶん大丈夫だと思います。
 問題があれば、また修正します。



posted by hirono at 00:56| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/36707471

この記事へのトラックバック