1

尽管知道如何用 C# 和 PHP 等其他语言进行匹配,但我确实在 Javascript 版本的正则表达式匹配方面苦苦挣扎。

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

2 回答 2

7

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

  • 您的^角色超出了实际的正则表达式。
  • 您有两个正则表达式结束字符 ( /)。
  • 请参阅@kopischke 关于我删除该{1,}部分的原因的回答。

这应该可以解决您的问题:

/^{(.+)}$/i
于 2012-06-15T18:16:01.980 回答
3

字符串开始/字符串结束代码属于正则表达式。此外,您的重复代码过于复杂。最后,当您匹配任何字符时,无需指明大小写无关。这应该这样做:

patt1 = /^{.+}$/
于 2012-06-15T18:21:00.563 回答