HTML コンテンツの検索強調表示に JavaScript RegExp を使用しています。
そのために私は使用しています:
data.replace( new RegExp("("+search+")", 'g'), "<b id='searchHighlight'>$1</b>" );
ここdata
で、 は HTML コンテンツ全体で、search
は検索文字列です。
たとえば、 を検索すると、h
単語 (the、there など) の h が強調表示され、タグ内のインスタンスも強調表示されます"<h1 id="title"> Something </h1>"
。
同じスタイルで同じ HTML コンテンツを強調表示する必要があるため、別のアプローチをとることはできません。
私は次のような解決策を読みました:
var input = "a dog <span class='something'> had a </span> and a cat";
// Remove anything tag-like
var temp = input.replace(/<.+?>/g, "");
// Perform the search
var matches = new RegExp(exp, "g").exec(temp);
しかし、同じ HTML コンテンツ内の検索テキストを強調表示する必要があるため、既存のタグを単純に取り除くことはできません。たとえば、次のように破損し
ないようh
に「the」で強調表示できるように、RegExpで検索を含めて除外する方法はありますか?"t<b id='searchHighlight'>h</b>e"
"<h1 id="title">Test</h1>"
"<<b id='searchHighlight'>h</b>1 id="title">Test</<b id='searchHighlight'>h</b>1>"
HTML コンテンツは静的で、次のようになります。
<h1 id="title">Samples</h1>
<div id="content">
<div class="principle">
<h2 id="heading">
PRINCIPLE</h2>
<p>
FDA recognizes that samples are an important part of ensuring that the right drugs are provided to the right patients. Under the Prescription Drug Marketing Act (PDMA), a sales representative is permitted to provide prescription drug samples to eligible healthcare professionals (HCPs). In order for BMS to provide this service, representatives must strictly abide by all applicable compliance standards pertaining to the distribution of samples.</p></div>
<h2 id="heading">
WHY DOES IT MATTER?</h2>
<p>
The Office of Inspector General (OIG) recognizes that samples can have monetary value to HCPs and, when used improperly, may have implications under the Federal False Claims Act and the Federal Anti-kickback Act. To minimize risk of such liability, the OIG requires the clear and conspicuous labeling of individual samples as units that cannot be sold. BMS and its business partners label every sample package to meet this requirement. Additionally, the HCP signature statement acknowledges that the samples will not be sold, billed or provided to family members or friends.</p>
<h2 id="heading">
WHO IS YOUR SMaRT PARTNER?</h2>
<p>
SMaRT is an acronym for “Samples Management and Representatives Together”. A SMaRT Partner has a thorough understanding of BMS sample requirements and is available to assist the field with any day-to-day policy or procedure questions related to sample activity. A SMaRT Partner will also:</p>
<ul>
<li style="margin-left:22pt;"> Monitor your adherence to BMS’s sample requirements.</li>
<li style="margin-left:22pt;"> Act as a conduit for sharing sample compliance issues and best practices.</li>
<li style="margin-left:22pt;"> Respond to day-to-day sample accountability questions within two business days of receipt.</li>
</ul>
<p>
Your SMaRT Partner can be reached at 888-475-2328, Option 3.</p>
<h2 id="heading">
BMS SAMPLE ACCOUNTABILITY POLICIES & PROCEDURES</h2>
<p>
It is the responsibility of each sales representative to read, understand and follow the BMS Field Sample Accountability Procedures, USPSM-SOP-101. The basic expectations are:</p>
<ul>
<li style="margin-left:22pt;"> Transmit all sample activity by communicating your tablet to the host server on a <strong>daily</strong> basis.</li>
<li style="margin-left:22pt;"> Maintain a four to six week inventory of samples rather than excessive, larger inventories that are more difficult to manage and increase your risk of non-compliance.</li>
<li style="margin-left:22pt;"> Witness all HCP’s signatures to confirm request and receipt of samples.</li>
</ul>
</div>
コンテンツはすべて散らばっており、1 つのタグだけではありません。したがって、DOM 操作は私にとって解決策ではありません。