development

자바 스크립트는 대소 문자를 구분하지 않고 문자열 비교

big-blog 2020. 12. 3. 08:08
반응형

자바 스크립트는 대소 문자를 구분하지 않고 문자열 비교


JavaScript를 사용하여 일부 문자열을 확인해야하지만 대소 문자 구분이 문제를 일으 킵니다. 예를 들면

if('abc'=='ABC')
{
return true;
}

단어의 의미가 같더라도 if 루프 안에 들어 가지 않습니다. 나는 그것이 예를 들어 어떻게 의미하는지 데이터를 모르기 때문에 tolower 절도 사용할 수 없습니다.

if('aBc'=='abC')
{
return true;
}

jquery로 할 수 있다면 JS 함수를 작성하는 방법.


두 인수를 모두 소문자로 만들 수 있으며 이렇게하면 항상 대소 문자를 구분하지 않는 검색으로 끝납니다.

var string1 = "aBc";
var string2 = "AbC";

if (string1.toLowerCase() === string2.toLowerCase())
{
    #stuff
}

정규 표현식을 사용하는 또 다른 방법 (이것은 Zachary의 대답보다 더 정확합니다) :

var string1 = 'someText',
    string2 = 'SometexT',
    regex = new RegExp('^' + string1 + '$', 'i');

if (regex.test(string2)) {
    return true;
}

RegExp.test ()는 true 또는 false를 반환합니다.

또한 '^'(문자열의 시작을 의미)를 시작 부분에 추가하고 '$'(문자열의 끝을 의미)를 끝에 추가하여 'sometext'가 유일한 텍스트 인 경우에만 정규 표현식이 일치하는지 확인하십시오. stringToTest에서. 정규식이 포함 된 텍스트를 찾는 경우에는 그대로 두어도됩니다.

string.toLowerCase () 메서드를 사용하는 것이 더 쉬울 수 있습니다.

그래서 ... 정규 표현식은 강력하지만 작동 방식을 이해하는 경우에만 사용해야합니다. 이해하지 못하는 것을 사용하면 예기치 않은 일이 발생할 수 있습니다.

정규 표현식 '튜토리얼'이 많이 있지만 대부분은 특정 제품을 푸시하려는 것으로 보입니다. 다음은 괜찮은 튜토리얼처럼 보입니다 ... 당연히 PHP를 사용하기 위해 작성되었지만 그렇지 않으면 좋은 초보자 튜토리얼 인 것 같습니다 : http://weblogtoolscollection.com/regex/regex.php

정규식을 테스트하는 데 좋은 도구 인 것 같습니다. http://gskinner.com/RegExr/


string.match ()를 사용할 수도 있습니다.

var string1 = "aBc";
var match = string1.match(/AbC/i);

if(match) {
}

이 시도...

if(string1.toLowerCase() == string2.toLowerCase()){
    return true;
}

또한 루프가 아니라 코드 블록입니다. 루프는 일반적으로 반복되지만 (한 번만 실행될 수도 있음) 코드 블록은 반복되지 않습니다.

toLowerCase를 사용하지 않는 것에 대한 귀하의 메모를 읽었지만 문제가되는 이유를 알 수 없습니다.

참고URL : https://stackoverflow.com/questions/4919403/javascript-compare-strings-without-being-case-sensitive

반응형