スポンサーサイト





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

タグ :

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

Return to page top

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

置換専用アプリ

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




テキストの置換をするだけのアプリケーションを作ってみました。

20110409_11


「置換」ボタンを押すと…

20110409_12


ソースを書きます。

<html>

<head>

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

function changetext(){

var textareaStr=document.TextForm.TextArea.value;
var beforeStr=document.TextForm.before.value;
var afterStr=document.TextForm.after.value;

var changepattern=new RegExp(beforeStr,"g");

var resultStr=textareaStr.replace(changepattern,afterStr);

document.TextForm.TextArea.value=resultStr;
}

// -->
</script>

</head>

<body>

<form name="TextForm">
<textarea name="TextArea" cols="60" rows="15"></textarea>
<br />

検索する文字列 : <input type="text" name="before">
<br />
置換する文字列 : <input type="text" name="after">
<br />

<hr />

<input type="button" value="置換" onclick="changetext()">
</form>

</body>

</html>


まず、本文(テキストエリア)が「TextArea」、検索文字列のテキストボックスが「before」、置換後文字列のテキストボックスが「after」と名前がついています。

これに対応して、「置換」ボタンをクリックして実行されるchangetext()関数では、データの内容を「textareaStr」、「beforeStr」、「afterStr」と名前をつけました。


changetext()関数は、beforeStr を afterStr に置換することに主眼があるのですが、このままではreplace()メソッドが使えません。つまり、

var resultStr=textareaStr.replace(beforeStr,afterStr);

のような書き方ではエラーになります。

なぜなら、replace()メソッドの第一引数は正規表現で指定する必要があるからです。

beforeStrを検索する条件を変数化したのが、

var changepattern=new RegExp(beforeStr,"g");

の部分です。

検索パターンを指定するRegExpオブジェクトの書式は以下のとおりです。

var 変数 = new RegExp (検索対象 , "フラグ");



こうしてreplace()メソッドを使って置換したのが resultStr で、さらにこれをテキストエリアに代入して関数が完成です。
関連記事

タグ :

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

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/14-1fb59167
  • 閉じるボタン
月別アーカイブ
リンク
カテゴリ
RSSリンクの表示
QRコード
QR
最新コメント
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。