Programing

JavaScript에서 문자열에 특정 문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

lottogame 2020. 3. 18. 08:01
반응형

JavaScript에서 문자열에 특정 문자가 포함되어 있는지 확인하는 방법은 무엇입니까?


사용자가 24 자 (문자 및 숫자, 대소 문자를 구분하지 않음) 등록 코드를 입력 해야하는 텍스트 상자가있는 페이지가 있습니다. 나는 maxlength사용자가 24자를 입력하도록 제한했다.

등록 코드는 일반적으로 대시로 구분 된 문자 그룹으로 제공되지만 사용자가 대시없이 코드를 입력하고 싶습니다.

jQuery없이 JavaScript 코드를 작성하여 사용자가 입력 한 주어진 문자열에 대시가 없거나 더 나은 영숫자 문자 만 포함되어 있는지 확인하려면 어떻게해야합니까?


에서 "hello"를 찾으려면 your_string

if (your_string.indexOf('hello') > -1)
{
  alert("hello found inside your_string");
}

알파 숫자의 경우 정규식을 사용할 수 있습니다.

http://www.regular-expressions.info/javascript.html

알파벳 숫자 정규식


ES6 .includes () 포함

"FooBar".includes("oo"); // true

"FooBar".includes("foo"); // false

"FooBar".includes("oo", 2); // false

E는 - 대신 당신이 물결표의 opperator 사용할 수 있습니다 IE에 의해 suported하지 않음 ~( 비트 단위 NOT 포함) ) (.indexOf를

~"FooBar".indexOf("oo"); // -2 -> true

~"FooBar".indexOf("foo"); // 0 -> false

~"FooBar".indexOf("oo", 2); // 0 -> false

Tilde 연산자는 숫자와 함께 사용하여 유효 ~N => -(N+1)합니다. 부울로 숫자를 변환하려면 이중 부정 !!( Logical NOT ) 과 함께 사용하십시오 .

!!~"FooBar".indexOf("oo"); // true

!!~"FooBar".indexOf("foo"); // false

!!~"FooBar".indexOf("oo", 2); // false

변수에 텍스트가있는 경우 foo:

if (! /^[a-zA-Z0-9]+$/.test(foo)) {
    // Validation failed
}

이렇게하면 사용자가 하나 이상의 문자를 입력 하고 영숫자 문자 입력했는지 테스트하고 확인합니다 .


string (word / sentence ...)에 특정 단어 / 문자가 포함되어 있는지 확인

if ( "write something here".indexOf("write som") > -1 )  { alert( "found it" );  } 

ES6 에는 includesString 's에 내장 메소드 ( )가 prototype포함되어 있으며, string에 다른 문자열이 있는지 여부를 확인하는 데 사용할 수 있습니다.

var str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be')); 

지원되지 않는 브라우저에서 다음 방법을 사용하여이 방법을 추가 할 수 있습니다. ( 소스 )

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }
    
    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}


이를 위해서는 정규식을 사용하십시오.

function isAlphanumeric( str ) {
 return /^[0-9a-zA-Z]+$/.test(str);
}

당신은 모두 너무 열심히 생각하고 있습니다. 간단한 정규식 만 사용하면 가장 친한 친구입니다.

var string1 = "Hi Stack Overflow. I like to eat pizza."
var string2 = "Damn, I fail."

var regex = /(pizza)/g // Insert whatever phrase or character you want to find

string1.test(regex); // => true
string2.test(regex); // => false

5 분 안에 정규식을 배우십니까?


var inputString = "this is home";
var findme = "home";

if ( inputString.indexOf(findme) > -1 ) {
    alert( "found it" );
} else {
    alert( "not found" );
}


영숫자 문자 만 테스트하려면 다음을 수행하십시오.

if (/^[0-9A-Za-z]+$/.test(yourString))
{
    //there are only alphanumeric characters
}
else
{
    //it contains other characters
}

정규식은 입력의 시작 (^)에서 시작하여 입력의 끝 ($)에서 중지하는 0-9, AZ 및 az 문자 세트 중 하나 이상 (+)을 테스트합니다.


Kevins의 답변은 정확하지만 다음과 같이 "매직"번호가 필요합니다.

var containsChar = s.indexOf(somechar) !== -1;

이 경우 -1찾을 수 없음을 나타 냅니다. 조금 더 나은 버전은 다음과 같습니다.

var containsChar = s.indexOf(somechar) >= 0;

문자열의 시작 또는 끝에서 문자를 검색하는 경우 startsWithendsWith

const country = "pakistan";
country.startsWith('p'); // true
country.endsWith('n');  // true

이 시도:

if ('Hello, World!'.indexOf('orl') !== -1)
    alert("The string 'Hello World' contains the substring 'orl'!");
else
    alert("The string 'Hello World' does not contain the substring 'orl'!");

예를 들면 다음과 같습니다. http://jsfiddle.net/oliverni/cb8xw/


문자열의 검색 기능도 유용합니다. 주어진 문자열에서 문자와 sub_string을 검색합니다.

'apple'.search('pl') 보고 2

'apple'.search('x') 반환 -1


예를 들어 ap 또는 h1 태그와 같은 DOM에서 데이터를 읽는 경우 두 가지 기본 JavaScript 함수를 사용하려는 경우 조용히 쉽지만 적어도 제공하려는 솔루션에 대해서는 es6로 제한됩니다. 텍스트에 "T"가 포함 된 경우 DOM 내에서 모든 p 태그를 검색합니다. 전체 단락이 제거됩니다. 이 작은 예가 누군가를 돕기를 바랍니다!

HTML

<p>Text you need to read one</p>
<p>Text you need to read two</p>
<p>Text you need to read three</p>

JS

let paras = document.querySelectorAll('p');

paras.forEach(p => {
  if(p.textContent.includes('T')){
       p.remove();
    } 
});

완벽하게 작동합니다.이 예는 많은 도움이 될 것입니다.

<script>    
    function check()
    {
       var val = frm1.uname.value;
       //alert(val);
       if (val.indexOf("@") > 0)
       {
          alert ("email");
          document.getElementById('isEmail1').value = true;
          //alert( document.getElementById('isEmail1').value);
       }else {
          alert("usernam");
          document.getElementById('isEmail1').value = false;
          //alert( document.getElementById('isEmail1').value);
       }
    }
</script>

<body>
    <h1>My form </h1>
    <form action="v1.0/user/login" method="post" id = "frm1">
        <p>
            UserName : <input type="text" id = "uname" name="username" />
        </p>
        <p>
            Password : <input type="text" name="password" />
        </p>
        <p>
            <input type="hidden" class="email" id = "isEmail1" name = "isEmail"/>
        </p>
        <input type="submit" id = "submit" value="Add User" onclick="return check();"/>
    </form>
</body>

데모 : include () 메서드는 전체 문자열에서 "contains"문자를 찾으면 true를 반환합니다.

var string = "This is a tutsmake.com and this tutorial contains javascript include() method examples."

str.includes("contains");

//The output of this

  true

참고 URL : https://stackoverflow.com/questions/4444477/how-to-tell-if-a-string-contains-a-certain-character-in-javascript

반응형