![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんばんは。
質問させてください。
画面から文字列を選択して、取得します。(これは出来ました。)
その文字列がHTMLソースファイルの
どの位置のものか取得する方法はありますでしょうか?
○番目の「こんばんは」を画面から取得した時に
同じ文字列があっても、○番目の位置が取得出来る方法なのですが・・・
----
<HTML><HEAD></HEAD>
<BODY>
おはよう、こんばんは。
さようなら、ありがとう。
しつれいしました、おはよう、こんばんは。
こんばんは、さようなら。
さようなら
</BODY>
</HTML>
----
No.1ベストアンサー
- 回答日時:
やりたいことが良くわかっていませんが、
文字列の開始位置を取りたいだけであれば、
splitで切り離した後にそれぞれの文字数と
対象の文字数を足していけば良いだけではないでしょうか?
var text = "おはよう、こんばんは。さようなら、ありがとう。しつれいしました、おはよう、こんばんは。こんばんは、さようなら。さようなら";
var target = "こんばんは";
var index = text.split(target);
var strCount = 0;
for (var i=0; index.length-1 > i; i++) {
alert(index[i].length + strCount);
strCount += target.length;
strCount += index[i].length;
}
■結果の例
5
37
43
この回答への補足
issa_srvさん、ご回答ありがとうざいます。
ちょっとサーバー室に軟禁されておりましてお返事遅れました。
申し訳ないです。
サンプルありがとうございます。
私の方でもサンプルを元に作成してみました。
結果は5,37,42となりました。
(多分、目視で数えると42なので正しいと思っています・・・)
---
function hoge()
{
var text = "おはよう、こんばんは。さようなら、ありがとう。しつれいしました、おはよう、こんばんは。こんばんは、さようなら。さようなら";
var target = "こんばんは";
var index = text.split(target);
var strCount = 0;
for (var i=0; index[i].length-1 > i; i++) {
alert("i=" + i);
alert(index[i].length + strCount);
alert(strCount += target.length);
alert(strCount += index[i].length);
}
}
---
そして、私の説明が悪かったのですが、
やりたいことは、以下の流れの2)番です。
---
1)ブラウザから文字列を範囲指定する。
2)その範囲指定した文字列のみの文字開始位置を取得。
例えば、
・HTMLソースの一番左上を0バイトとした時、○バイト目等・・・。
・BODYタグで囲われた文字列の○バイト目等・・・。
(文字長は文字列から求められると考えております。)
3)CGI側へ文字列開始位置、文字長を渡し、データとして保存。
4)次回同じ画面を出力する時に保存した開始位置、文字長より、
Bタグなどで強調表示させたい。
---
目的としましては、4)番目でタグを挿入する位置を特定させたいのです。
開始位置、文字長がわかれば<B>、</B>の挿入位置はわかると思っております。
選択した文字列の位置の取得方法わかりました。
(issa_srvさんへのお礼の場所ですが申し訳ないです。)
~~~
//選択範囲の取得
Rng = document.selection.createRange();
//BODYタグの全テキスト取得
Pos = document.body.createTextRange();
//Rngの選択範囲の終了位置から開始位置を
//Posの終了位置に設定
Pos.setEndPoint("EndToStart",Rng);
//Posの文字列の長さを求めると
//Rngの開始位置がPosの終了位置になっているので、
//Rngの開始位置がわかる
alert(Pos.text.length);
~~~
参考URL:
http://chaichan.web.infoseek.co.jp/qa4500/qa4552 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
この将棋プログラムに王様ゲッ...
-
google apps scriptの終了のさせ方
-
翌月を取得するGASが分かりません
-
ジェネレーターの作り方
-
イベントが初めの一回しか起き...
-
C#OpenCv V4にのエラーに関する...
-
初回訪問(アクセス)日時の取...
-
html javascript リンク先アド...
-
FCKeditorで画像登録ができませ...
-
APIを使って埋め込んだグーグル...
-
GoogleMapのAPIで初期の地図の表示
-
C#で、ContextMenuStripに動的...
-
VSCODE[Python]の設定について
-
JavaScriptで文字列の特定文字...
-
GASでundefinedエラーが出ます
-
ASP.NETのコントロールの値をJa...
-
JSONPを処理するにはどうすれば...
-
記述方法について
-
colorbox (オーバレイでの向き...
-
javaScriptのコードの修正をお...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
なぜmatchメソッドがエラーにな...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
javascriptでiframeのURL変更は?
-
C#で、ContextMenuStripに動的...
-
ASP.NET MVCでObjectをjsに渡す
-
1日1回引けるJavaScriptおみく...
-
javascriptでテーブルに追加し...
-
JavaScriptを使って毎日決まっ...
-
googleスプレッドシートのApps ...
-
JavaScriptで文字列の特定文字...
-
アクセス時からのカウントダウ...
-
ローカルにあるファイルを検索...
おすすめ情報