指定の文字の後に数値を付加し一定間隔で数値を増やす |
Internet Explorer | Netscape Navigator | iCab | Safari | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3.0x | 4.0x | 4.5 | 5.0x | 5.5 | 6.0 | 2.0x | 3.0x | 4.0x | 4.x | 6.0 | 7.0 | 2.x | 1.x | |
Windows | ○ | ○ | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - |
Macintosh | ○ | ○ | ○ | ○ | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
UNIX | - | - | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - |
ポイント | if (c == str) { result += n; cnt++; if (cnt == 2) { cnt = 0; n++; } } |
---|---|
説 明 | 指定の文字の後に数値を付加し一定間隔で数値を増やすにはcharAtを使って文字数分繰り返し処理を行います。該当する文字がある場合には、数値を文字列として付加します。1つずつでなく2つ単位で変換する場合にはカウンタを用意しカウントを加算していきます。カウント値が2になったら元に戻し数値を1増やします。 このプログラムでは以下のように文字列が置換されます。 ABC@@DE@FG@H@ ↓ ABC@1@1DE@2FG@2H@3 |
サンプル | <html> <head> <title>指定の文字の後に数値を付加し一定間隔で数値を増やす</title> <script language="JavaScript"><!-- function convert() { n = 1; cnt = 0; str = "@"; result = ""; txt = document.myForm.Src.value; for (i=0; i<txt.length; i++) { c = txt.charAt(i); result += c; if (c == str) { result += n; cnt++; if (cnt == 2) { cnt = 0; n++; } } } document.myForm.Dst.value = result; } // --></script> </head> <body> <form name="myForm"> <input type="button" value="変換" onClick="convert()"><br> <textarea cols="40" rows="20" name="Src">変換元テキスト</textarea><br> <textarea cols="40" rows="20" name="Dst">変換後のテキストが入ります</textarea><br> </form> </body> </html> |
補足説明 | なし |
■サンプルスクリプトを実行する >>実行 ■各ブラウザでの動作結果を見る >>View! |