今、自分で作ってるプログラムの話です。。

alert に、HTMLのコードが入ったもの<BR>とか、を入れた場合、どうもそのまま<BR> と表示されてしまいます。
改行は、してもしなくてもいいんですが、巧い方法って有りますでしょうか?
やや困りです。
宜しくお願いします。

ちょっと具体的に書きますと。。

まず、画面Aで 画面Bのタイトルを入力してもらいます。
その時、場合によっては<BR>を入れてもらい、改行、もしくは<FONT>等で色の指定等してもらいます。
画面Bには選択欄が有り、そこの選択欄が正しく選択されてない場合、
(画面Bのタイトル)が、選択されてません
というalertを出す仕組みです。

つまり画面Aにて、「画面B<BR>のタイトル」と入力した場合、
alert でも、
画面B<BR>のタイトルが、選択されてません
と表示されてしまいます。

という感じですが、HTMLタグがalertで出ない方法です。
こうしたらいいんじゃない?っていうアイディアでも構いません。
宜しくお願いします。

A 回答 (5件)

言語はJavaScriptという前提の元で。



取得した値を検索して、<BR>があるかどうかを判定し、あれば置き換える、という処理でいいのではないでしょうか?

実際にテストしていないので、正常に動くかどうかわかりませんが、

ver strValue=document.***.***.value;
↑ここは、入力された値が入るように変えてください。
res=strValue.indexOf("<BR>",0) //<BR>を検索
if(res != -1){ //該当がなければ-1が返るので
 strMsg=strValue.replace("<BR>","\n"); //<BR>を改行に置き換え
}
alert(strMsg);

といった感じでしょうか。

<BR>の大文字、小文字の問題等出てくると思いますので、調整してください。
改行をしないようにしたいのであれば、replaceの"\n"の部分を""にすればいいと思います。
    • good
    • 0
この回答へのお礼

JavaScriptで。って事を書き忘れてましたね。
登録したカテゴリーがそうだったので、うっかりしてました。
っていうか、ASPです。

ごていねいに有り難うございました。
最初の人のお返事にも書いたんですけど、なんとなく解決しました。
問題は<BR>だけじゃなくて、全てのタグだったんです。
<>を検出して置き換える関数を作成しました。
が、半角も全角もお構いなしに検出してしまうので、困ったもんです(笑)

お礼日時:2001/11/08 13:53

詳しい状況が分からないので何とも言えませんが、入力チェック時の警告は、alertでなければなりませんか?


別に何でもよいのであれば、サイズなどを指定したHTMLをポップアップしてもよいのではないでしょうか。これならタグは本来の働きをするだけで、表示されることはないですよね。
次の関数を追加して、

function warn(str)
{
var win = open('_blank', 'caution', 'width=300,height=200');
win.document.write('<HTML><BODY><CENTER><FORM name="f">');
win.document.write(str + '<BR><BR>');
win.document.write('<INPUT type="button" name="b" value="閉じる" onClick="window.close()">');
win.document.write('</FORM></CENTER></BODY></HTML>');
win.focus();
}

更に画面Bのalert文を、下記のように変えてみて下さい。

alert(message)
  ↓
warn(message)

※alertの引数を、そのままwarnに渡して下さい。
    • good
    • 0
この回答へのお礼

どうも有り難うございます。
一応試してみました。が、やっぱしJavaScriptの方が良さそうです。。
下の方に加えておきましたが、<>で検出して中身を外す関数を、頑張って作りました!
一応、alertに渡す前にASPを使って外す、というものです。
とりあえずは、それで解決しそうです。
<が片方だけだった時とか、全角で打たれた時とか、いろいろ謎は多いんですけどね。

お礼日時:2001/11/08 13:58

入力された文字列から「<>」に、はさまれた部分を探し出して、削除するなり、他の文字に置き換える処理を入れてみるのは、い

かがでしょう?
    • good
    • 0

画面B\rのタイトル


としてみてください。
    • good
    • 0

何の言語か解らないですが...。



要は、「画面B<BR>のタイトル」を、「画面Bのタイトル」と表示したいのですよね?

単純に、”<”~”>”を削除したら駄目なのですか?
タグは、基本的に”<”と”>”で囲まれてる筈ですので...。
多重括弧だけ検出すれば、問題無いと思うのですが?

質問の意味を取り違えてたら、すいません。
    • good
    • 0
この回答へのお礼

有り難うござます。ただ、そのやり方が解らなくて。。
でも、なんとなく解決しました!

お礼日時:2001/11/08 13:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QChr(13)とChr(10)の違いは?

myStr = Replace(myStr, Chr(13), "")

myStr = Replace(myStr, Chr(10), "")

で、改行を置換しているのですが、どちらかでも改行できる時や
どちらかじゃないと改行できない時があります。

そもそもChr(13)とChr(10)の違いはなんでしょう?
どちらも改行ですよね?
何が違うのでしょう?

Aベストアンサー

こんにちは。お邪魔します。

Chr(10) ・・・ ラインフィード ・・・ 略して、Lf

Chr(13) ・・・ キャリッジリターン ・・・ 略して、Cr

改行文字に何を使うのかはアプリケーションが規定するものです。

Win・Office環境では
上のふたつを組合わせた改行[CrLf]を使うことが多いと思います。
次に[Lf]、そして、[Cr]

なので、ソースによっては
  myStr = Replace(myStr, vbCrLf, "")
と、一発で置換できるケースも少なくないです。
■ソースごとに改行文字を確認しておくことから始めた方が有利になります。■

ひとまず、VBAでの改行の扱いに慣れるには
■VBAで用意された文字列定数について知っておいた方がよいと思います。■
 VBE(Visual Basicの編集画面)が開いている状態で、
 F2 キー → オブジェクトブラウザー起動
 検索小窓に、vbCrLf、とタイプして、検索ボタン
 VBA.Constantsクラスのメンバーが表示され
 その中にすべての改行文字(文字列定数)が含まれています。
 そのまま、F1 キーでヘルプを表示します。
詳しい説明はヘルプを読む方がいいでしょう。

実践的な話として、
Chr(10)やChr(13)は関数の戻り値です。
対して、
vbLfやvbCr(またはvbCrLf)は定数です。
定数で済ませられるなら、定数の方が何かと有利です。
定数の名前は略号ですから、実態をイメージし易くなっています。
定数の扱いに慣れることをお奨めします。
例)
  myStr = Replace(myStr, vbLf, "")
  myStr = Replace(myStr, vbCr, "")
  myStr = Replace(myStr, vbCrLf, "")

もしも文字列定数を先に覚えていたなら、疑問にもならなかったのかも知れませんね。
私の場合は、改行の何たるかを覚える前に文字列定数覚えていて、困ることありませんでしたから。

以上、ご参考まで。

こんにちは。お邪魔します。

Chr(10) ・・・ ラインフィード ・・・ 略して、Lf

Chr(13) ・・・ キャリッジリターン ・・・ 略して、Cr

改行文字に何を使うのかはアプリケーションが規定するものです。

Win・Office環境では
上のふたつを組合わせた改行[CrLf]を使うことが多いと思います。
次に[Lf]、そして、[Cr]

なので、ソースによっては
  myStr = Replace(myStr, vbCrLf, "")
と、一発で置換できるケースも少なくないです。
■ソースごとに改行文字を確認しておくことから始めた方が有利...続きを読む

Q

を統合変換

テキストの改行変換をジャバスクリプトで、

if(getId("br_1").checked==true){
str = str.replace(/&lt;br&gt;/g, "\n");
}
if(getId("br_2").checked==true){
str = str.replace(/(&lt;br \/&gt;)/g, "\n");
}

<input type="checkbox" name="br_1" />削除1
<input type="checkbox" name="br_2" />削除2

これで、
<br>と<br />が\n変換されるようになりましたが、
これで書き方は正しいでしょうか?
また、
これをラジオボタンで
「なし」「削除1」「削除2」と単一選択にしたいのですが、
どうやればよいのでしょうか?

 

Aベストアンサー

<input type="radio" name="br" >なし
<input type="radio" name="br">削除1
<input type="radio" name="br">削除2

typeをラジオボタンにして、名前を同じにすれば
ひとまとまりになります。

あとはJSのonselectやonclickメソッドを使って
処理してやれば処理してやればいいでしょう。

replaceを使った書き換えはよくやる方法ですので問題ないと思いますよ。

QエクセルVBAのChr(10)の挿入と削除

宜しくおねがいします


現在結合されたセルがありそのセル内に他のプログラムから
下記の値が挿入されるようになっています。

あいうえお
かきくけこ
さしすせそ
たちつてと
(Chr(10)の改行)
(Chr(10)の改行)
(Chr(10)の改行)
(Chr(10)の改行)


他のプログラムから送られてくる値は”あ行”の1行だけだったり
”ま行”までの7行あったりとその都度変わってきます。
文字数も”あ”の1文字だけだったり”あああいいいうううえええおおお”と
文字数も変わります。

しかし下の4行分の”Chr(10)の改行”の数は変わりません。


やりたいことは↓

コマンドボタンを二つ作り、ボタンを押すたびに下にあるChr(10)の改行を
挿入したり削除したりしたいのですがどのようにすればよいのでしょうか?
追加ボタンを2回押すとChr(10)の改行が6行分になり
そこから削除ボタンを3回押すとChr(10)の改行が3行分になる・・・という感じです。


試しにマクロの記録で

セルを選択して改行を削除

をしてみたのですが思うような動きをしてくれません。

なぜChr(10)なのかとかいうのは聞かないでください・・・
そこから説明すると長くなるので。

宜しくおねがいします


現在結合されたセルがありそのセル内に他のプログラムから
下記の値が挿入されるようになっています。

あいうえお
かきくけこ
さしすせそ
たちつてと
(Chr(10)の改行)
(Chr(10)の改行)
(Chr(10)の改行)
(Chr(10)の改行)


他のプログラムから送られてくる値は”あ行”の1行だけだったり
”ま行”までの7行あったりとその都度変わってきます。
文字数も”あ”の1文字だけだったり”あああいいいうううえええおおお”と
文字数も変わります。

しかし下の4行分の”Chr(10)の改行”の数は変わ...続きを読む

Aベストアンサー

Sub CommandButton1_click()
 activecell.value = activecell.value & vbLf
End Sub

Sub CommandButton2_click()
 dim buf as string
 buf = activecell.value
 If right(buf, 1) = vbLf then
 activecell.value = left(buf, len(buf) - 1)
 end if
End Sub

単純に足したり削ったりするだけのようですが。

Qtextarea中の

に全置換

<form action="略" method="post" name="foo">
(中略)
<textarea name="bar" rows="4" cols="40">
</textarea>
(中略)
</form>

今、上記のformがあります。
で、このtextarea内の<br>を<br />に全置換するために、
<intut type="button" name="hoge" value="textare内の 「&lt;br&gt;⇒&lt;br /&gt;」を全置換" />
のようなボタンを配置したいです。
で、この<input type="button"(中略) />をおすとJSで<br>を<br />に全置換できるようにしたいのでうが、
どのようにくめばいいのでしょうか?

なお、いま手許ソースがないので、name属性ではなくid属性だったかもしれません。
あるいはnameとidの両方の属性がついてたかもしれません。

どのようにくめばいいかご存じの方、よろしければそのJSの記述をお教えください。

以上、よろしくお願い申し上げます。

<form action="略" method="post" name="foo">
(中略)
<textarea name="bar" rows="4" cols="40">
</textarea>
(中略)
</form>

今、上記のformがあります。
で、このtextarea内の<br>を<br />に全置換するために、
<intut type="button" name="hoge" value="textare内の 「&lt;br&gt;⇒&lt;br /&gt;」を全置換" />
のようなボタンを配置したいです。
で、この<input type="button"(中略) />をおすとJSで<br>を<br />に全置換できるようにしたいのでうが、
どのようにくめばいいのでしょうか?

なお、いま手...続きを読む

Aベストアンサー

>なお、いま手許ソースがないので、name属性ではなくid属性だったかもしれません。
>あるいはnameとidの両方の属性がついてたかもしれません。
name属性か、id属性かによって、ソースは変わってきます。
<input type="button" name="hoge" onclick="sample();" value="textare内の 「&lt;br&gt;⇒&lt;br /&gt;」を全置換" />
<script type="text/javascript"><!--
function sample(){
var ele=document.forms['foo'].elements['bar'],value=ele.value;
if(value)ele.value=value.replace(/<br>/g,'<br />');
}
//--></script>

これでどうでしょうか。

QVB、chr関数を一覧で印刷できる?

Chr(10)が改行だとかは、どこでどうやって探すの?
一覧表みたいに印刷できる?

Aベストアンサー

MSDNで ASCII文字セット を調べればわかりますよ。
ちなみに、8、9、10、13 は制御文字で、それぞれBackSpace、TAB、LF、CR ですね。

Q特定の要素内に入力された文字列を改行
ごとに置換することはできますか?

ある要素内(div id="hoge")に入力されている文字列をセレクトボックスに置換することはできるでしょうか?

<div id="hoge">
会議室A<br />会議室B<br />会議室C<br />
</div>

上の<div id="hoge">要素を下記のように変更したいと思っております。
<br />を区分けの基準にして<br />自体は削除した形で置換できればと思います。

<div id="hoge">
<select name="room">
<option value="会議室A">会議室A</option>
<option value="会議室B">会議室B</option>
<option value="会議室C">会議室C</option>
</select>
</div>

上記のようなことは可能なのでしょうか?
可能であればご教授お願いいたします。

Aベストアンサー

とりあえずどうしてもということなので

<script>
window.onload=function(){
var hoge=document.getElementById("hoge");
var s=document.createElement("select");
s.setAttribute("name","room");
while(n=hoge.firstChild){
if(n.nodeName=="#text" && n.nodeValue!=="\n"){
var o=document.createElement("option");
o.setAttribute("value",n.nodeValue);
o.appendChild(document.createTextNode(n.nodeValue));
s.appendChild(o);
}
hoge.removeChild(n);
}
hoge.appendChild(s);
}
</script>
<div id="hoge">
会議室A<br />会議室B<br />会議室C<br />
</div>

とりあえずどうしてもということなので

<script>
window.onload=function(){
var hoge=document.getElementById("hoge");
var s=document.createElement("select");
s.setAttribute("name","room");
while(n=hoge.firstChild){
if(n.nodeName=="#text" && n.nodeValue!=="\n"){
var o=document.createElement("option");
o.setAttribute("value",n.nodeValue);
o.appendChild(document.createTextNode(n.nodeValue));
s.appendChild(o);
}
hoge.removeChild(n);
}...続きを読む

QChr関数のラインフィールド文字って?

EXCEL2000のVBAを勉強しているものです。
Chr関数のラインフィールド文字ってどんなことが
できるのでしょうか?調べると「復帰」とかかれているのですが・・
実際に使ってみても何がどう変わっているのかがわかりません。
chr(10)
とすると、どうなるのでしょうか?教えてください。
よろしくお願いいたします。

Aベストアンサー

こんにちは。maruru01です。

文字コード10のラインフィードは、Excelではセル内改行になります。
セルの書式設定の[配置]で、[折り返して全体を表示する]にチェックをしておいて、
そのセルに、

Range("A1").Value = "1行目" & Chr(10) & "2行目"

と書き込むと、セル内改行されます。
ちなみにVBの定数を使用して、

Range("A1").Value = "1行目" & vbLf & "2行目"

とも出来ます。

なお、通常のWindows改行は、Chr(13) & Chr(10)で、VBの定数は、「vbCrLf」ですが、これを使用して、

Range("A1").Value = "1行目" & vbCrLf & "2行目"

とすると、セルの表示は、

1行目・
2行目

という風に、Chr(13)が表示出来ずに、中黒になってしまいます。

Qタイトルを文書内に表示

<TITLE>タイトル</TITLE>を文書内に表示するにはどうしたらよかったでしょうか。
タイトルバーだけでなく、文書の先頭にも表示させたいのですが、javascriptで可能でしょうか。

#HTMLでも可能だったりして?

Aベストアンサー

素直に<BODY>タグの中に<H1>や<FONT size="+3">などを使ってもう一度書いたらどうでしょうか。

変にこってJavascriptやらなんやらを使ってもJavaを使えないブラウザの人には見えませんし、素直に書いてやるのが一番だと思います。

QChr関数であいうえお順に

Chr関数であいうえお順に文字をエクセルに書き出そうとしたけど、
単純にはいかないのですかね?

Sub test()
Dim MyRow As Long
Dim i As Long

For MyRow = 1 To 51
Cells(MyRow, 1) = Chr(-32096 + i)
i = i + 2
Next MyRow

End Sub
これを実行すると、濁点が入ったりするのですが、
綺麗に「あ~ん」まで取得する方法はありますか?

複雑なコードを作るしかないのですかね?

Aベストアンサー

Chr(-32096 + i)



Mid("あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん", i, 1)

あたりに変えればできませんかね?
文字列部分は別途変数に入れて分離しても可です。

Qの違い

現在jQueryを使ったプログラムをしていて、気になった点があったので質問させていただきました。

具体的には
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"/>
<script type="text/javascript">
function show() {
}
</script>

こんなソースを書いていましたが、showメソッドが認識されていませんでした。

そこで
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"></script>
とかくと、後ろのメソッドも認識されました。

ここで疑問なのは</>と</script>の違いです。
この2つは何がちがうのでしょうか?

現在jQueryを使ったプログラムをしていて、気になった点があったので質問させていただきました。

具体的には
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"/>
<script type="text/javascript">
function show() {
}
</script>

こんなソースを書いていましたが、showメソッドが認識されていませんでした。

そこで
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1...続きを読む

Aベストアンサー

https://www.google.com/search?q=HTML+%E7%A9%BA%E8%A6%81%E7%B4%A0
違いっていうか。
<hoge />って書いていいのは「何もはさまないタグ」だけ。<img><link><br>…
<script>は、確かにsrc属性を設定すれば何もはさまなくはなりますが、「はさまないタグ」ではないから「/>」で終わることはできない。<img /> を<img></img>にすることはできるが逆はできません。

試してないから分からないが、質問文の記述では最初の間違ったタグが開始タグとして認識され以降3行がスクリプトとして認識され、結果文法エラーとなっているのでは。というか、その書き方でほかの部分のソースの解釈に影響出てないんですか?


人気Q&Aランキング

おすすめ情報