Как определить, содержит ли строка определенный символ в JavaScript? - PullRequest
280 голосов
/ 15 декабря 2010

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

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

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

Ответы [ 15 ]

3 голосов
/ 15 декабря 2010

Для проверки только буквенно-цифровых символов:

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

Регулярное выражение проверяет 1 или более (+) набора символов 0-9, AZ и az, начиная с начала ввода (^) и заканчивая концом ввода ($).

2 голосов
/ 04 мая 2015

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

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

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

2 голосов
/ 29 ноября 2013

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

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/

1 голос
/ 02 февраля 2019

Если вы читаете данные из DOM, такие как тег ap или h1, например, вам нужно использовать две встроенные функции JavaScript, это довольно просто, но ограничено es6, по крайней мере для решения, которое я собираюсь предоставить , Я буду искать все теги p в DOM, если текст содержит букву «T», весь абзац будет удален. Я надеюсь, что этот маленький пример поможет кому-то!

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();
    } 
});
0 голосов
/ 07 августа 2013

Работает отлично. Этот пример очень поможет.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...