Как узнать, содержит ли строка определенный символ в JavaScript?
У меня есть страница с текстовым полем, где пользователь должен ввести 24 символа (буквы и цифры, без учета регистра) регистрационный код. Я использовал maxlength чтобы ограничить ввод пользователем 24 символов.
регистрационные коды обычно задаются в виде групп символов, разделенных тире, но я хотел бы, чтобы пользователь вводил коды без тире.
Как я могу написать свой код JavaScript без jQuery, чтобы проверить, что данная строка, которую пользователь входные данные не содержат тире, или еще лучше, содержит только буквенно-цифровые символы?
15 ответов:
найти "привет" в
your_stringif (your_string.indexOf('hello') > -1) { alert("hello found inside your_string"); }для буквенно-цифрового вы можете использовать регулярное выражение:
Если у вас есть текст в переменной
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
для этого используйте регулярное выражение.
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иendsWithconst country = "pakistan"; country.startsWith('p'); // true country.endsWith('n'); // true
var emailID=document.getElementById("emailField").value; if(!emailID.contains("@")) { alert("Wrong EmailID"); }
Comments