ホームページ >ウェブフロントエンド >jsチュートリアル >大文字と小文字を区別しない XPath Contains() 検索を実行するにはどうすればよいですか?
大文字と小文字を区別しない XPath Contains()
質問:
XPath を使用して次のことを確認する場合式 /html/body//text()[contains(.,'test')] など、テキスト ノード内に文字列が存在する場合、検索では大文字と小文字が区別されます。 XPath for JavaScript で大文字と小文字を区別しない検索をするにはどうすればよいですか?
答え:
XPath 1.0 では大文字と小文字を区別しない比較を実行する簡単な方法はありません。同様の結果を達成するテクニックがあります:
/html/body//text()[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test')]
このメソッドは、使用されるアルファベットが事前にわかっていることを前提としているため、出現する可能性のあるアクセント付き文字を含めます。
<code class="javascript">function xpathPrepare(xpath, searchString) { return xpath.replace("$u", searchString.toUpperCase()) .replace("$l", searchString.toLowerCase()) .replace("$s", searchString.toLowerCase()); } xp = xpathPrepare("//text()[contains(translate(., '$u', '$l'), '$s')]", "Test"); // -> "//text()[contains(translate(., 'TEST', 'test'), 'test')]"</code>
これにより、使用される文字セットに関係なく、大文字と小文字を区別しない検索が可能になります。
これらのメソッドは検索文字列の一重引用符を正しく処理できない可能性があることに注意してください。特殊文字を使用する場合は、別のアプローチが必要になる場合があります。
以上が大文字と小文字を区別しない XPath Contains() 検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。