使用Javascript RegExp匹配“{CHARACTERS}”

时间:2012-06-15 18:12:43

标签: javascript regex pattern-matching

我真的很难使用正则表达式匹配的Javascript版本,尽管知道如何在其他语言(如C#和PHP)中使用它。

我希望匹配{ANYCHARACTERS}

必须有:

  • 一开始{
  • 最后}
  • (任何字符,符号等)之间的1个或多个字符

到目前为止,我有以下内容:

<script type="text/javascript">

// The string that I want to perform a match on
var str = "{ASTRINGINHERE£$%^&*éáó}";

// Mt Matching expression
var patt1 = ^/{(.*){1,*}/}$/i;

// Write the matched result
document.write(str.match(patt1));

</script>

2 个答案:

答案 0 :(得分:7)

如上所述,您当前的模式应该会导致javascript语法错误。以下是我看到的问题:

  • 您的^字符在实际正则表达式之外。
  • 您有两个正则表达式结束字符(/)。
  • 请参阅@ kopischke关于我删除{1,}部分的原因的答案。

这可以解决您的问题:

/^{(.+)}$/i

答案 1 :(得分:3)

字符串开始/字符串结束代码属于正则表达式。此外,您的重复代码也不必要地复杂。最后,当您匹配任何角色时,无需指示大小写独立。这应该做:

patt1 = /^{.+}$/