No.3ベストアンサー
- 回答日時:
ありゃりゃ、すいません。
間違えてしまったお詫びとして、置換対象となる文字列が2回以上出現しても全て置換するようにしてみました。
今度こそは。。。(^^A;
function rep_ex(in_str) {
check_str = in_str.match(/A[0-9]{2}/g);
if (check_str) { //1個所以上マッチしたか
out_str = in_str; //出力変数を入力文字列で初期化
for (i=0; i<check_str.length; i++) { //マッチした回数ループ
//マッチした個所を一つずつ置換
document.write("<script><!--\nout_str = \"" + out_str + "\".replace(/A[0-9]{2}/," + check_str[i] + ");\n//--"+">\n</script>");
}
//変換結果を出力
return out_str;
}
//マッチしないときは入力をそのまま返す
return in_str;
}
使用方法はこんな感じで。
x[0] = rep_ex(x[0]);
x[1] = rep_ex(x[1]);
後はお好みに合わせて適宜カスタマイズしてください。
残る課題は存在しない変数名(A99など)にマッチした場合の処理ですが・・・これは必要に応じて追加してください。
またまたご回答ありがとうございます^^
大変参考になります!また、お世話になるかもしれませんが、
そのときはよろしくお願いします♪
No.4
- 回答日時:
追加情報です。
document.write~の行を次の行と差し替えてもOKです。
eval("out_str = \"" + out_str + "\".replace(/A[0-9]{2}/," + check_str[
i] + ")");
スクリプトを動的に生成するという発想自体に変更はないのですが、document.write
よりはevalの方が幾分スマートかと思います。
No.2
- 回答日時:
なるほど、質問を読み違えていました。
ではこんな関数はどうでしょう。(全角スペースを半角スペースかタブに置換してください。)
function rep_ex(idx) {
str = x[idx].match(/A[0-9]{2}/);
if (str) {
document.write("<script><!--\nstr = x["+idx+"].replace(/A[0-9]{2}/," + str + ");\n//--"+">\n</script>");
}
return str;
}
使用例はこんな感じで。
A00 = "かきくけこ";
A21 = "なにぬねの";
x[0] = "あいうえおA00さしすせそ";
x[1] = "たちつてとA21はひふへほ";
document.write(rep_ex(0)+"<br>");
document.write(rep_ex(1)+"<br>");
前提条件は、処理対象文字列の中に置換対象文字列が一つであること。
"あいうえおA00さすしすせそ"はOKですが、
"あいうえおA00さすしすせそA21はひふへほ"はNG(最初の一つしか置換しません)
そこまで要求されるのか分からない上に面倒なので試してませんが、関数をいじれば対応させることも可能だと思います。(^^;
度々のご回答ありがとうございますm(_ _)m
折角ご回答なのですが、上の例では表示はOKなのですが‥‥配列x[]内は変わってないですよね^^;
どうしても配列内を置換したいので‥‥試行錯誤でなんとか以下のようにしてみました。
-------------------------------------------------
//変数は諦めAも配列に‥‥
A[0] = "かきくけこ";
A[21] = "なにぬねの";
x[0] = "あいうえおA00さしすせそ";
x[21] = "たちつてとA21はひふへほ";
function rep_ex(idx) {
str = x[idx].match(/A[0-9]{2}/);
if(str) {
x[idx] = x[idx].replace(/A[0-9]{2}/,cl_word(str));
}
alert(x[idx]);
}
function cl_word(str){
var num = "" + str ; //numに格納(しないとエラー?)
num = num.substring(1,3) ; //数字を取り出す
num = num - 0 ; //数値に変換
return (A[num]) ;
}
rep_ex(0) ;
rep_ex(21) ;
------------------------------------------------
これも前提条件は、処理対象文字列の中に置換対象文字列が一つであること。
になりますね^^; 無理やりな感じが溢れてます^^
No.1
- 回答日時:
いくつか書き方があります。
まず、冗長だけど基本的な書き方:
x[0] = x[0].replace(/A[0-9][0-9]/,A00);
これは
x[0] = x[0].replace(/A[0-9]{2}/,A00);
または
x[0] = x[0].replace(/A\d{2}/,A00);
などと記述することも可能です。
詳しくは参考サイトをご覧ください。
参考URL:http://tohoho.wakusei.ne.jp/js/string.htm#Repl,h …
この回答への補足
ご回答ありがとうございます。
ええと、この場合だと置換されるのは必ず「A00」の変数になりますね^^;
質問の補足になるのですが置換する文字も動的に‥‥例えば、
配列内にあるのが「A00」ならA00を、
配列内にあるのが「A21」ならA21を、
のようにすることは可能でしょうか?よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- iPod・ウォークマン・音楽プレーヤー iTunes Matchについて。 iTunes Matchについて質問させてください。 このサービ 2 2022/06/23 12:50
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.openでタイトル名の指定
-
ホームページに日付を自動更新...
-
なぜ、ジャバスクリプトが表示...
-
javaで画像をランダム表示しつ...
-
document.writeで画面が消える
-
ActiveXobjectが作成できない
-
JavaScriptで決まった「時刻」...
-
C#テキストボックスの文字を配...
-
Boolean型配列中のTrueの有無を...
-
google apps scriptの終了のさせ方
-
関数でy=g(x)のgとは何の略です...
-
jspからjavascriptの変数引継ぎ
-
任意の座標をクリックさせるには
-
Linux バイナリ実行できない "...
-
javascriptでスロットゲームを...
-
javascriptでiframeのURL変更は?
-
javascript 特定のタグのidの存...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
VSCODE[Python]の設定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openでタイトル名の指定
-
ホームページに日付を自動更新...
-
テキストボックスに入力された...
-
for文のiを使ってリンク先のア...
-
○歳△ヶ月と×日を計算してくれる...
-
引数を渡さずに呼び出し元の変...
-
なぜ、ジャバスクリプトが表示...
-
innerHTMLにて設定した情報を再...
-
前のページに戻るとページトッ...
-
更新でランダムでページ内のテ...
-
今日の月と日付の1週間後や3日...
-
「今日の日付けを画像で表示」...
-
java カレンダーの日付指定で...
-
文字列を点滅させたい
-
HTMLを記述しつつサブ窓(showM...
-
条件分岐(IF文)の簡素化
-
Java Scriptのメソッドについて
-
javascriptとphpの連携で疑問
-
現在の日付から、1ヶ月前にす...
-
この方法を教えてください。
おすすめ情報