- - PR -
シングルコーテーションの判断
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-06 19:21
はじめまして、.net初心者で、VB.NETでWebアプリの開発を行っています。
ある文字列を暗号化して、その値をJavaScriptの関数の引数にしようと思ってる のですが、暗号化した文字列の結果に「'」シングルコーテーションが含まれる 場合に「カッコがありません」というクライアントエラーになってしまいます。 Dim a1 as string = 暗号化(文字列) Dim a2 as string = 暗号化(文字列) Dim script As String = "test1('" & a1 & "', '" & a2 & "'") Me.Button1.OnClientClick = script a1の暗号化した文字列が「bb'cc」 a2の暗号化した文字が「ddd」 だとすると Me.Button1.OnClientClick = test1('bb'cc', 'ddd') となって「'」の区別がつかなくなる。 何かいい解決方法はありませんでしょうか? | ||||
|
投稿日時: 2007-07-06 19:44
JavaScriptでも普通にエスケープつかえっぞ。
| ||||
|
投稿日時: 2007-07-06 19:51
ぶさいくろうさん
回答ありがとうございます。 なにぶん初心者なものですみません、エスケープというのは具体的に どのようなものでしょうか? | ||||
|
投稿日時: 2007-07-06 20:09
エスケープ文字のことです。 .net初心者というより開発そのものの初心者のような… 「JavaScript エスケープ」などでググってみましょう。 | ||||
|
投稿日時: 2007-07-07 09:48
データ中に含まれる特殊文字についての話のようですので、
エスケープ文字というよりは、エスケープするための関数の問題ですね。 JavaScriptでエスケープするための関数がありますので、それを使いましょう。 encodeURI decodeURI ヒントとしては、引数として渡す前にencodeURIして、関数内でdecodeURIします。 | ||||
|
投稿日時: 2007-07-10 13:10
よっし〜さん、KIさん回答ありがとうございます。
しかし、一つ問題がありまして・・・ 引数として渡す前にencodeURIするとの ことなのですが、VB側でスクリプトの作成を行っているため 引数として渡す前にencodeURIを使用できなくて困っています。 ソースを以下のように書いてもだめでした。 Dim a1 as string = 暗号化(文字列) Dim a2 as string = 暗号化(文字列) Dim script As String = "test1(encodeURI(" & a1 & "), '" & a2 & "'") Me.Button1.OnClientClick = script a1の暗号化した文字列が「bb'cc」 a2の暗号化した文字が「ddd」 だとすると表示上は Me.Button1.OnClientClick = test1(encodeURI(bb'cc), 'ddd') カッコなしエラーになる | ||||
|
投稿日時: 2007-07-10 13:48
気付かれていないようなので、一言。
encodeURI()では、'をエスケープしてくれません。 | ||||
|
投稿日時: 2007-07-10 14:47
マーサさん回答ありがとうございます。
ということは、encodeURIでは今の状況を解決できないということでしょうか? 何か他にいい方法はありますかね? |