找出一个字符串是否由一组特定字符组成

Ale*_*lex 4 javascript regex string jquery codemirror

如果一个字符串只包含一组特定的字符{ A-Z,我该}怎么办?

例如

  • {VARIABLE} =>应该返回true
  • {VARiABLE}=>应该是假的,因为有一个小写i
  • { VARIABLE} =>应该是假的,因为有空间等

哦,非常重要:

字符串必须在{和之间至少有一个字符},所以:

  • {} 也应该是假的......

And*_*yle 6

这听起来像是使用正则表达式的好例子.特别是,正则表达式允许一个匹配一系列字符 - [A-Z{}]匹配任何字符,或者是大写字母{,或}.

编辑基于新的要求 - 你想匹配以文字开头的东西{,然后在范围内至少有一个字符A-Z,然后关闭}.这给了正则表达式:

{[A-Z]+}
Run Code Online (Sandbox Code Playgroud)

因此,您可以匹配整个正则表达式:

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
Run Code Online (Sandbox Code Playgroud)


pim*_*vdb 6

在这种情况下使用:

/^{[A-Z]+}$/.test(str);
Run Code Online (Sandbox Code Playgroud)

regexp表示格式的任何字符串:

  • 首先是 {
  • 然后是一个或多个大写字母
  • 然后一个 }

^...$确保该字符串应该是正是这种形式,而不仅仅是一个子(否则test{AAA}将匹配太).