<textarea name="areaA" rows="4" cols="40"></textarea><br>
<input type="button" onclick="...">
<textarea name="areaB" rows="4" cols="40"></textarea><br>
という風な2つのテキストエリアとボタンを使い、
テキストエリアに文字を書いてもらい、
ボタンを押すと任意の行を置換したいです。
たとえば
------------------
#あああああ
いいいいい
#ううううう
えええええ
------------------
というものを、ボタンを押すと先頭に#がついた行だけ置換して
------------------
<部品1>あああああ<部品2>
いいいいい
<部品1>ううううう<部品2>
えええええ
------------------
という風なscriptを組みたいのですが、正規表現等が苦手でまったくうまくいきません。
ご教授いただけないでしょうか?
No.2ベストアンサー
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>test</title>
<body>
<form name="obj">
<p>
<textarea id="textA" rows="10" cols="70">
#a
b
</textarea>
</p>
<p>
<input type="button" onClick="change2()" value=" 変 換 ">
</p>
<p>
<textarea id="textB" rows="10" cols="70">
</textarea>
</p>
</form>
<script type="text/javascript">
function change() {
var text = '';
var array = document.getElementById('textA').value.split('\r\n');
for (var i = 0; i < array.length; i++) {
if (array[i].match(/^#/)) {
text += "Sun" + array[i] + "Mon\r\n";
} else {
text += array[i];
}
}
document.getElementById('textB').value = text;
}
function change2() {
var s, str = '', count = 0;
var array = document.getElementById('textA').value.replace(/\r/g,'').split('\n');
while (s = array[count++]) str += (s.match(/^#/))? 'Sun' + s + 'Mon\n': s;
document.getElementById('textB').value = str;
}
</script>
ありがとうございます。
とても参考なしました。
以下のもので落ち着きました。
<script type="text/javascript"><!--
Com = new Array()
Com[0] = "<部品1>";
Com[1] = "<部品2>";
function change() {
var array = document.getElementById('textA').value.split('\r\n');
for (var i = 0; i < array.length; i++) {
if (array[i].match(/^# |^#/)) {
obj.textB.value += Com[0] + array[i].replace(/^# |^#/,"") + Com[1] + "\n";
} else {
obj.textB.value += array[i] + "\n";
}
}
}
// --></script>
</head>
<body>
<form name="obj">
<p><textarea id="textA" rows="10" cols="70">
あああああ
#いいいいい
ううううう
# えええええ
おおおおお</textarea></p>
<p><input type="button" onClick="change()" value=" 変 換 "></p>
<p><textarea id="textB" rows="20" cols="70"></textarea></p>
</form>
</body>
No.1
- 回答日時:
正規表現が苦手なら、文字列に対するメソッドで乗り切りませう。
1. 取得したテキストを改行でsplit
2. 1の配列でforループ
3. それぞれ1文字目が"#"かどうか判定していく
4. "#"だった行については部品1、2を挿入するようにする
この回答への補足
下記のものを作ってみたのですが、エラーが出てうまくいきません。
間違っている箇所がわかりません。
教えていただけないでしょうか?
<head>
<title>変換</title>
<script language="JavaScript"><!--
function change() {
array = new Array();
text = document.obj.textA.value;
LF = String.fromCharCode(10);
array = text.split(LF);
for (i = 0; i < array.length; i++) {
if (array[i].match(^#)) {
textB += "Sun" + array[i] + "Mon";
} else {
textB += array[i];
}
}
}
//--></script>
</head>
<body>
<form name="obj">
<textarea name="textA" rows="10" cols="70"></textarea><br><br>
<input type="button" onClick="change()" value=" 変 換 "><br><br>
<textarea name="textB" rows="10" cols="70"></textarea>
</form>
</body>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- MySQL MySQLに登録した内容を更新する時の、textareaの使い方 1 2022/07/11 18:20
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
javaScriptの変数をJavaの変数...
-
javascript教えてください
-
SendKeys()が一番最後に実行さ...
-
コードレビューをお願いします。
-
小窓が残像を残して移動
-
JQueryでfunctionに引数としてI...
-
javascriptでtextareaに文字列...
-
クリック→テキストボックスに追加
-
クリックさせたいが、click()が...
-
innerHTML内では改行は禁止?
-
formのfileの値をhiddenでも持...
-
JSPファイルにJavaScriptを埋め...
-
テキストフィールド未入力の場...
-
ひとつのボタンでタイマーを動...
-
onClickがinput type="image"だ...
-
INPUTでデフォルト値(数...
-
データバインド機能でand検索を...
-
URL 判定
-
return trueとreturn falseの用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
iOSのみダブルタップが必要
-
onclickが動作しない
-
追加ボタンを押した際に ok ボ...
-
ボタンかリンクをクリックする...
-
innerHTML内では改行は禁止?
-
クリックさせたいが、click()が...
-
javaScriptの変数をJavaの変数...
-
formのfileの値をhiddenでも持...
-
JavascriptでDOM-based XSSの発...
-
クリックでテーブル内の背景色...
-
VB.NETで<Input>タグ、<text...
-
jQueryで設定したイベントハン...
-
開いた子ウィンドウにあるボタ...
-
javascriptで作成されたテーブ...
-
HTMLのテキストボックスへのド...
-
JavaScriptのfileオブジェクト...
-
テキストフィールド未入力の場...
-
オンクリックで現在時刻の取得→...
-
JSのボタンを複数う使うには
おすすめ情報