2012-06-15 76 views
1

尽管知道如何在C#和PHP等其他语言中使用正则表达式匹配的Javascript版本,但我仍然非常努力。使用Javascript匹配“{CHARACTERS}”RegExp

我希望匹配{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> 

回答

3

字符串的开始/结束串码属于正则表达式中。此外,您的重复代码不必要的复杂。最后,当你匹配任何角色时,不需要指明案例的独立性。这应该这样做:

patt1 = /^{.+}$/ 
7

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

  • 你有实际的正则表达式以外的^角色。
  • 您有两个正则表达式结尾字符(/)。
  • 请参阅@ kopischke的回答,为什么我删除了{1,}部分。

这应该解决您的问题:

/^{(.+)}$/i 
+0

大括号在这种情况下不需要转义。 – kopischke

+0

@kopischke良好的通话。编辑。谢谢! – benekastah

+0

倒数upvote;)? – kopischke