前提・実現したいこと
Webページ上で文字の組み合わせが表記として問題がないかを検索してハイライトするブックマークレットを作りたい。
発生している問題
後よみ先読みなどで済む単語の検索だけなら可能なのですが、語群から組み合わせの可能性を検索してくるという段階がどうしたら良いのかわからずつまづいています。
少数の語彙群であれば、組み合わせ全網羅も可能かもしれませんが、語群内の単語数がけっこうあるため、自動で組み合わせを検索できたらと思いました。
現時点で動かせているソースコード例
全角の英数字やかっこ記号、年を表す以外の4桁以上の数字の羅列、「取り消し」をルールに基づいてWebページ上で検索し、ひっかけてハイライトさせようとしたもの
javascript
1javascript: var s = '[a-zA-Z0-9()「」],[0-9]{4}(?!年),(取りけ|とり消|とりけ),取り消し(?=[亜-熙]),(?<=[亜-熙])取り消し,(?<![亜-熙])取消(の|に|を|が|は|も|と|や)' 2var A = s.split(','); 3var R = new Array(); 4B = A.map(function (d, i) { rn = Math.floor(Math.random() * 1000); 5R.push({ no: 'z' + rn, name: d }); d = '(' + d + ')'; d = new RegExp(d, 'gi'); return d; }); 6b = document.body.innerHTML; 7B.forEach(function (d, i) { 8 if (b.indexOf(d)) { b = b.replace(d, '<span name=' + R[i].no + ' class=' + R[i].no + ' style=\'font-size:24px!important;color:#000!important;background-color:yellow!important;font-weight:bold!important;\'>$1</span>'); } 9} 10); 11void(document.body.innerHTML = b);
↑「取り消し」の部分について、それっぽい動きはするものの適切でなく未完成です…。
補足情報(語群の具体的とルールの具体的な話)
- A語群(送り仮名をつける開いた状態):受け付け、取り扱い、申し込み、取り消し…
- A語群(送り仮名をつけない閉じた状態):受付、取扱、申込、取消…
- B語群:期間、前、後、者…
ひっかけたいNG規則
0. 閉じたA + 動詞の活用
<例>受付する、取扱させていただく
0. 閉じたA + 閉じたA + 閉じたB
<例>取扱受付期間
0. 開いたA + 助詞
<例>受け付けを、取り扱いは
0. 開いたA + 閉じたB
<例>受け付け期間、申し込み後
あなたの回答
tips
プレビュー