如果一个字符串只包含一组特定的字符,我该如何判断:{
A-Z
和}
?
例如
{VARIABLE}
=> 应该返回 true{VARiABLE}
=> 应该是假的,因为里面有一个小写i
字母{ VARIABLE}
=> 应该是假的,因为有空格等。
哦,很重要:
字符串必须在{
and之间至少有一个字符}
,因此:
{}
也应该是假的...
如果一个字符串只包含一组特定的字符,我该如何判断:{
A-Z
和}
?
例如
{VARIABLE}
=> 应该返回 true{VARiABLE}
=> 应该是假的,因为里面有一个小写i
字母{ VARIABLE}
=> 应该是假的,因为有空格等。哦,很重要:
字符串必须在{
and之间至少有一个字符}
,因此:
{}
也应该是假的...这听起来像是使用正则表达式的好例子。特别是,正则表达式允许匹配一系列字符 -[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]+}$/.test(str);
正则表达式表示任何格式的字符串:
{
}
^...$
确保字符串应该完全是这种形式,而不仅仅是一个子字符串(否则也会test{AAA}
匹配)。
使用这个正则表达式:^[A-Z{}]+$
. 它只允许A-Z
和{}
做一个否定的正则表达式匹配。如果您匹配类似/[^A-Z{}]/
的内容并获得成功,则该字符串包含“不允许”的内容。
试试这个正则表达式...
/^[{}A-Z]+$/
/^[{}A-Z]+$/.test("{VARIABLE}") // => true
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} ,它将返回警报(“它是正确的值,是的,它是正确的”)
使用这个表达式。
[AZ{}]*
这里的方括号 [] 坚持要出现什么字符, * 表示这种模式可以重复多次。