[過去ログ] + JavaScript の質問用スレッド vol.124 + (1002レス)
前次1-
抽出解除 レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
44
(4): (ワッチョイ eec3-lRA9 [159.28.152.184]) 2021/11/15(月)21:15 ID:eCFTqC9o0(1) AAS
すいません、下記のようにボタンを押した時の処理をあらかじめ一つずつJSで書いて書いてるんですが、
ボタンの種類と数が莫大な量になるとJSを書くのが大変になってきました

逆にクリックされた任意のボタンオブジェクトを変数に入れる方法ってあったりしますでしょうか
(ボタンがクリックされる→クリックされたボタンのclassやvalueやtextを調べて目的の処理、という順番に変更したい)

下記が現状のコードです

・html
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnB" value="固有の番号">ボタンBタイプ</button>

・js
省8
47: (ワッチョイ eec3-lRA9 [159.28.152.184]) 2021/11/16(火)00:43 ID:Ca8LCMpZ0(1) AAS
>>45
そのイメージに近いです

>>46
ある程度まとめた結果が
BtnA BtnB BtnCみたいなグループです。

了解です、Web製作管理板に移動させていただきます。
91
(1): (ワッチョイ f6c3-9IQd [159.28.152.184]) 2021/11/22(月)17:43 ID:+p8qnn8E0(1/3) AAS
すいません、下記のように読み込んだshiftJISのcsvファイルを
正規表現を使って置換しようとしてるのですがうまくいきません

文字コードの問題なのか指定したマッチパターン意外の色んな文字が勝手に置換されてしまいます

const requestCSV = new XMLHttpRequest();
requestCSV.overrideMimeType('text/plain; charset=Shift_JIS');//csvの文字コードがshiftJSであることは変更できない

requestCSV.addEventListener('load', (event) => {

 const orgCSV = event.target.responseText;
 tempKey="["+key+"]";//keyは変数を使う必要があります
 keyName = new RegExp(tempKey, "g");//複数マッチさせる必要があります
省6
98
(1): (ワッチョイ f6c3-9IQd [159.28.152.184]) 2021/11/22(月)19:05 ID:+p8qnn8E0(2/3) AAS
>>96
"["+key+"]"

というようにカッコで囲んだ形式で検索したいのでここはあえてそうしてるんです…
104
(3): (ワッチョイ f6c3-9IQd [159.28.152.184]) 2021/11/22(月)23:07 ID:+p8qnn8E0(3/3) AAS
>>103
置換した具体例で言うと例えば

さっきの例で置換部分が
result=orgCSV.replace(keyName, "ほげ");

元のテキストが下記だとすると
<title>[name]</title>

結果が下記になってしまってなんじゃこりゃ…て感じですね
<titlほげ>[ほげaほげほげ]</titlほげ>

正規表現オブジェクトを使わなければ普通に成功します
result=orgCSV.replace("[name]", "ほげ"); //<title>ほげ</title>になる
省1
111
(1): (ワッチョイ f6c3-9IQd [159.28.152.184]) 2021/11/23(火)01:17 ID:SfFCbJaV0(1) AAS
>>105
>>107
ああ、なるほど、エスケープをダブルでつけないといけなかったんですね
シングルではつけてみていたんですがそれで動かなかったのであれって思ってました
資料の提示もありがとうございます!
139
(1): (ワッチョイ efc3-wVd4 [159.28.152.184]) 2021/12/04(土)12:18 ID:Zxe83BGy0(1/2) AAS
読み込みたいファイルのパスだけがわかっている場合に

reader= new FileReader();
reader.readAsText("aaa/hoge.csv") ;

みたいな感じで読み込もうと思ったんですが、
readAsTextの引数はblobだかfileオブジェクトでないとだめみたいで、
レファレンスを読んで見るも、
パスからblogだかfileオブジェクトだかを作成する方法がわかりませんでした。

ファイル読み込み自体は他の方法を使ってできるものの、
FileReaderとreadAsTextの組み合わせを使ってトライしてみたいので
どなたかアドバイスお願いできますでしょうか
141
(1): (ワッチョイ efc3-wVd4 [159.28.152.184]) 2021/12/04(土)12:48 ID:Zxe83BGy0(2/2) AAS
>>140
例えばxmlhttpRequest()でもパスからファイルを読み込むことが出来るので
FileReaderでそれが出来ないのは不思議な気になるんですがそういうものなんですかね
172: (ワッチョイ 7bc3-4iyA [159.28.152.184]) 2021/12/15(水)19:13 ID:h9C3pi7L0(1/2) AAS
いつもはreplaceやmatchを使うんだけど、
execってのがキャプチャグループだけを簡単に抜き出せて便利そうだから使ってみました

txt="AabBxxB";

pattern = /A(.*)B/;

d=pattern.exec(txt);

alert(d[1]);
省3
177
(1): (ワッチョイ 7bc3-4iyA [159.28.152.184]) 2021/12/15(水)20:34 ID:h9C3pi7L0(2/2) AAS
>>173
>>174,175
ありがとうございます
なるほど、*も+も?も単体で使うと最長一致になるけど
*?とか+?みたいに組み合わせて使うと最短一致になるんですね、ややこしい…
939
(3): (ワッチョイ bbc3-GsVe [159.28.152.184]) 2022/07/17(日)12:49 ID:QAgCXqq90(1/3) AAS
すいません、
文書の中から決まったパターンに合致する部分を全部抽出して配列にしたいので、
matchと正規表現を使ったのですが結果が惜しいです…

a href="hoge"
の「引用符内のみ」を抽出したいので
let regexp = /a href="(.*?)"/;
と書いたのですが結果は
a href="hoge" と丸ごとごろっと抽出されてしまいます

普通にdocument.getElementsByTagName("a");でDOMアクセスすれば?
と思われるかもしれませんが、XMLhttpRequestで取得したテキストなのでできません
省1
942
(1): (ワッチョイ bbc3-GsVe [159.28.152.184]) 2022/07/17(日)13:10 ID:QAgCXqq90(2/3) AAS
こうでしょうか

 const loadText=//aタグが入ったhtml文書ならなんでも
let regexp = /a href="(.*?)"/g
let result = loadText.match(regexp);
console.log(result[0]);
945
(1): (ワッチョイ bbc3-GsVe [159.28.152.184]) 2022/07/17(日)13:17 ID:QAgCXqq90(3/3) AAS
みなさんありがとうございます!

DOMパーサーってやつ使ったらできました!DOMParserすごい!
正規表現のやり方も後でためしてみます!
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.325s*