>웹 프론트엔드 >JS 튜토리얼 >ContainsIn 함수를 사용하여 대소문자를 구분하지 않는 XPath 검색을 수행하는 방법은 무엇입니까?

ContainsIn 함수를 사용하여 대소문자를 구분하지 않는 XPath 검색을 수행하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-22 18:51:03283검색

How to Perform Case-Insensitive XPath Searching with ContainsIn Function?

대소문자를 구분하지 않는 XPath Contains

XPath에서 Contains() 함수는 다음과 같이 한 문자열에 다른 문자열이 포함되어 있는지 확인합니다.

/html/body//text()[contains(.,'test')]

대소문자를 구분합니다. 즉, "Test", "TEST" 또는 "TesT"와 일치하지 않습니다. 대소문자를 구분하지 않으려면 다음 해결 방법을 시도해 보세요.

/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");</code>

이를 통해 알파벳에 대한 사전 지식 없이도 모든 검색 문자열에 대해 대소문자를 구분하지 않고 일치시킬 수 있습니다. 그러나 두 옵션 모두 검색 문자열에서 작은따옴표로 인해 어려움을 겪습니다.

위 내용은 ContainsIn 함수를 사용하여 대소문자를 구분하지 않는 XPath 검색을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.