Узнайте, состоит ли строка из определенного набора символов
Как я могу выйти, если строка содержит только определенный набор символов: {
A-Z
а также }
?
Например
{VARIABLE}
=> должен вернуть true{VARiABLE}
=> должно быть ложным, потому что есть строчныеi
внутри{ VARIABLE}
=> должно быть ложным, потому что есть пробел и т. д.
О, очень важно
строка ДОЛЖНА иметь хотя бы один символ между {
а также }
, так:
{}
тоже должно быть ложным...
7 ответов
В этом случае используйте:
/^{[A-Z]+}$/.test(str);
Регулярное выражение представляет любую строку в формате:
- Первый
{
- Затем одна или несколько заглавных букв
- Затем
}
^...$
гарантирует, что строка должна быть именно этой формы, а не только подстрокой (в противном случае test{AAA}
будет соответствовать тоже).
Это звучит как хороший случай для использования регулярных выражений. В частности, регулярные выражения позволяют сопоставить диапазон символов - [A-Z{}]
будет соответствовать любому символу, который является заглавной буквой, {
, или же }
,
РЕДАКТИРОВАТЬ на основе новых требований - вы хотите сопоставить то, что начинается с буквального {
затем имеет хотя бы один символ в диапазоне A-Z
затем закрытие }
, Что дает регулярное выражение:
{[A-Z]+}
Таким образом, вы можете сопоставить все регулярные выражения:
val input = "{VARIABLE}"
return input.test(/{[A-Z]+}/) // returns true
"{VARiABLE}".test(/{[A-Z]+}/) // returns false
"{ VARIABLE}".test(/{[A-Z]+}/) // returns false
"".test(/{[A-Z]+}/) // returns false - open bracket didn't match
"{}".test(/{[A-Z]+}/) // returns false - A-Z part didn't match
Сделайте отрицательное совпадение с регулярным выражением. Если вы соответствуете что-то вроде /[^A-Z{}]/
и получить успех, то строка содержит что-то, что "не разрешено".
Используйте это регулярное выражение: ^[A-Z{}]+$
, Это позволяет только A-Z
а также {}
Используйте это выражение.
[AZ{}]*
Здесь квадратные скобки [] настаивают на том, какие символы должны присутствовать, и * говорят, что этот шаблон может повторяться несколько раз.
Код Jquery:
$(document).ready( function(){
$('#test_regex').click( function(){
regex= /^{[A-Z]+}$/;
str= $('#reginput').val();
result= regex.test(str);
if( result ){
alert("It's the correct value, yes it's right");
}else{
alert("It's incorrect value.. You know");
}
});
});
HTML-код:
<input type="text" id="reginput"/>
<button id="test_regex">Check Value</button>
Будет возвращено предупреждение ("Это правильное значение, да, это правильно"), если значение равно {UPPERCASELETTERS}
Попробуйте это регулярное выражение...
/^[{}A-Z]+$/
/^[{}A-Z]+$/.test("{VARIABLE}") // => true