スポンサーサイト





上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

replace()メソッド (2)

  • Posted by: javascriptmania
  • 2011-04-09 Sat 11:24:50
  • 正規表現




ants Lab.を参照。

複雑な正規表現の置換にチャレンジです。

Microsoft Windows 2000
MicroSoft Windows 2000


これらを

Microsoft Windows Vista

に置換するのは、replace()メソッドにおける正規表現にフラグi,gを使えばよいことは以前やりました。

<html>

<head>

<script type="text/javascript">
<!--

var text = "Microsoft Windows 2000\nMicroSoft Windows 2000";

replaceText = text.replace(/microsoft windows 2000/ig,"Microsoft Windows Vista");

alert(replaceText);

// -->
</script>

</head>

<body>


</body>

</html>


実行結果
20110409_7


「または」を使う



次に、

Microsoft Windows 2000
MicroSoft Windows 2000
MicroSoft Windows XP

Microsoft Windows Vista

に置換します。

var text = "Microsoft Windows 2000\nMicroSoft Windows 2000\nMicrosoft Windows XP";

replaceText = text.replace(/microsoft windows (2000|XP)/ig,"Microsoft Windows Vista");

alert(replaceText);


実行結果
20110409_8

「または」の記号を使うことにより、2000もXPもいずれも置換することができるようになりました。


否定の先読み



Microsoft Windows 2000
MicroSoft Windows 2000
Microsoft Windows 2000 Server
MicroSoft Windows XP

のうち、「Microsoft Windows 2000 Server」以外

Microsoft Windows Vista

に置換します。

var text = "Microsoft Windows 2000\nMicroSoft Windows 2000\nMicrosoft Windows 2000 Server\nMicrosoft Windows XP";

replaceText = text.replace(/microsoft windows (2000|XP)(?! Server)/ig,"Microsoft Windows Vista");

alert(replaceText);


実行結果
20110409_9

このように、あるものだけ除外して置換することもできます。


空白の有無に関係なく検索・置換



空白を入れたり入れなかったりする面倒な場合も処理可能です。

Microsoft Windows 2000
MicroSoft Windows 2000
Microsoft Windows 2000 Server
MicroSoft Windows XP
microsoft windows2000

のうち、「Microsoft Windows 2000 Server」以外を

Microsoft Windows Vista

に置換します。

<html>

<head>

<script type="text/javascript">
<!--

var text = "Microsoft Windows 2000\nMicroSoft Windows 2000\nMicrosoft Windows 2000 Server\nMicrosoft Windows XP\nmicrosoft windows2000";

replaceText = text.replace(/microsoft windows\s*(2000|XP)(?! Server)/ig,"Microsoft Windows Vista");

alert(replaceText);

// -->
</script>

</head>

<body>

</body>

</html>


実行結果
20110409_10

「\s」は、空白文字などの目に見えない文字を表します。文字クラスでいうと
  [\r\t\n\f]
ということになりますが、半角スペースのことだと考えておけばいいと思います。

アスタリスク「*」は、「0回以上」を示します。「Windows\s*2000」で

Windows2000
Windows 2000
Windows     2000

のどれも表現することができます。
関連記事

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://javascriptmania.blog111.fc2.com/tb.php/11-733f0be7
  • 閉じるボタン
月別アーカイブ
リンク
カテゴリ
RSSリンクの表示
QRコード
QR
最新コメント
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。