C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: バックスラッシュの扱い


(過去ログ 104 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■62124 / inTopicNo.1)  バックスラッシュの扱い
  
□投稿者/ こう (1回)-(2011/09/22(Thu) 11:31:36)

分類:[JavaScript] 

はじめまして。
バックスラッシュの処理で困っており、よろしければ力をお貸しください。

現在、以下の処理をJavascriptで行っております。
1. 文字列を取得。
2. バックスラッシュ(円マーク)で区切る。

この1.で取得される文字列が"aaaaa\bbbbb"のようになっており、"\b"がエスケープシーケンスとなり、
"\\"を使いsplitやindexOfをしても出てきません。
そのため、2.の処理が実行できないでいます。

取得文字列は変更できないので、このまま使うしかありません。

どのような方法で区切れるか、教えていただけないでしょうか?

引用返信 編集キー/
■62125 / inTopicNo.2)  Re[1]: バックスラッシュの扱い
□投稿者/ Hongliang (808回)-(2011/09/22(Thu) 12:15:01)
普通にやれば、そういう風にはなりませんが。

<body>
  <div>
    <button onclick="alert(document.getElementById('x').innerHTML.split('\\').join('\n'));">実行</button>
  </div>
  <div id="x">a\b\c</div>
</body>

'\b' で split すれば分割されるんでしょうか?

引用返信 編集キー/
■62126 / inTopicNo.3)  Re[1]: バックスラッシュの扱い
□投稿者/ shu (1006回)-(2011/09/22(Thu) 12:44:22)
No62124 (こう さん) に返信
> はじめまして。
> バックスラッシュの処理で困っており、よろしければ力をお貸しください。
>
> 現在、以下の処理をJavascriptで行っております。
> 1. 文字列を取得。
> 2. バックスラッシュ(円マーク)で区切る。
>
> この1.で取得される文字列が"aaaaa\bbbbb"のようになっており、"\b"がエスケープシーケンスとなり、
aaaaa\bbbbbの確認をどのようにされたか分かりませんが、このように表示されたからといって\bの部分が
エスケープシーケンスとは言えません。


> "\\"を使いsplitやindexOfをしても出てきません。
> そのため、2.の処理が実行できないでいます。
どのような値が返ってきたのでしょう?

1,2はそれぞれどんな処理をしているのでしょう?
引用返信 編集キー/
■62128 / inTopicNo.4)  Re[2]: バックスラッシュの扱い
□投稿者/ こう (2回)-(2011/09/22(Thu) 13:35:25)
>Honglianさん
\bですと、分割はできますが、後半の文字列の1文字目が消えます。

取得文字列の部分は触れないので、ブラックボックスです。


>shuさん
確認方法ですが、ページのソースを観ています。
<script type="text/javascript">
var str = "aaaaa\bbbbb";
.....
</script>

この"aaaaa\bbbbb"はページが生成されるときに代入されています。
IDEの上では、以下のようになっています。
<script type="text/javascript">
var str = L_USER_LOGINNAME;
.....
</script>

一例ですが、L_USER_LOGINNAMEが"pqrs\tuvwx"となる場合、
alert(str)をすると、"pqrs  uvwx"と表示されます。空白はタブです。

処理としては、取得した文字列を\の前の文字列と後半の文字列に分割し、
別々の変数に格納したいと考えています。


■No62126 (shu さん) に返信
> ■No62124 (こう さん) に返信
>>はじめまして。
>>バックスラッシュの処理で困っており、よろしければ力をお貸しください。
>>
>>現在、以下の処理をJavascriptで行っております。
>>1. 文字列を取得。
>>2. バックスラッシュ(円マーク)で区切る。
>>
>>この1.で取得される文字列が"aaaaa\bbbbb"のようになっており、"\b"がエスケープシーケンスとなり、
> aaaaa\bbbbbの確認をどのようにされたか分かりませんが、このように表示されたからといって\bの部分が
> エスケープシーケンスとは言えません。
> 
> 
>>"\\"を使いsplitやindexOfをしても出てきません。
>>そのため、2.の処理が実行できないでいます。
> どのような値が返ってきたのでしょう?
> 
> 1,2はそれぞれどんな処理をしているのでしょう?

引用返信 編集キー/
■62130 / inTopicNo.5)  Re[3]: バックスラッシュの扱い
□投稿者/ shu (1008回)-(2011/09/22(Thu) 14:20:20)
2011/09/22(Thu) 14:50:13 編集(投稿者)

No62128 (こう さん) に返信

> >shuさん
> 確認方法ですが、ページのソースを観ています。
> <script type="text/javascript">
> var str = "aaaaa\bbbbb";
> .....
> </script>
これはvar str = "aaaaa\\bbbbb"と書かないと駄目ですね。

>
> この"aaaaa\bbbbb"はページが生成されるときに代入されています。
> IDEの上では、以下のようになっています。
> <script type="text/javascript">
> var str = L_USER_LOGINNAME;
> .....
> </script>
>
> 一例ですが、L_USER_LOGINNAMEが"pqrs\tuvwx"となる場合、
> alert(str)をすると、"pqrs uvwx"と表示されます。空白はタブです。
L_USER_LOGINNAMEに設定している処理が変だと思いますが、
その処理を直せないならエスケープシーケンスを置換するしかないんじゃないかな。

引用返信 編集キー/
■62132 / inTopicNo.6)  Re[4]: バックスラッシュの扱い
□投稿者/ こう (3回)-(2011/09/22(Thu) 17:11:00)
>shuさん
返事ありがとうございます。
そうですよね。。。
L_USER_LOGINNAMEの処理を見直してできないか、ほかの方法で取得できないかを検討します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -