Как узнать, содержит ли строка определенный символ в JavaScript?



У меня есть страница с текстовым полем, где пользователь должен ввести 24 символа (буквы и цифры, без учета регистра) регистрационный код. Я использовал maxlength чтобы ограничить ввод пользователем 24 символов.



регистрационные коды обычно задаются в виде групп символов, разделенных тире, но я хотел бы, чтобы пользователь вводил коды без тире.



Как я могу написать свой код JavaScript без jQuery, чтобы проверить, что данная строка, которую пользователь входные данные не содержат тире, или еще лучше, содержит только буквенно-цифровые символы?

15676   15  

15 ответов:

найти "привет" в your_string

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

для буквенно-цифрового вы можете использовать регулярное выражение:

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

Буквенно-Числовое Регулярное Выражение

Если у вас есть текст в переменной foo:

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

это проверит и убедитесь, что пользователь ввел хотя бы один символ, и ввел только буквенно-цифровых символов.

С ES6 включает в себя

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

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

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

проверьте, если строка (слово / предложение...) содержит конкретное слово / символ

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

вы все слишком много думаете. Просто использовать простое регулярное выражение, это ваш лучший друг.

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 минут?

для этого используйте регулярное выражение.

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

ES6 содержит встроенный метод (includes) в , который может быть использован для проверки, если строка содержит другую строку или нет.

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

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

следующий polyfill может быть использован для добавления этого метода в не поддерживаемых браузерах. (источник)

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;
    }
  };
}
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
}

регулярное выражение тестируется для 1 или более (+) из набора символов 0-9, A-Z и a-z, начиная с начала ввода (^) и останавливаясь с конца ввода ($).

ответ Кевина правильный, но он требует "волшебного" числа следующим образом:

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

в таком случае вы должны знать, что -1 расшифровывается как не нашел. Я думаю, что немного лучше версия будет:

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

попробуйте это:

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/

функция поиска строки тоже полезна. Он ищет героя, как подстрока в строку.

'apple'.search('pl') возвращает 2

'apple'.search('x') return -1

прекрасно работает.Этот пример поможет много.

<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>

Если вы ищете символ(ы) в начале или в конце строки, вы можете также использовать startsWith и endsWith

const country = "pakistan";
country.startsWith('p'); // true
country.endsWith('n');  // true
  var emailID=document.getElementById("emailField").value;
  if(!emailID.contains("@"))
    {
      alert("Wrong EmailID");
    }

Comments

    Ничего не найдено.