使用Javascript RegExp匹配“{CHARACTERS}”

使用Javascript RegExp匹配“{CHARACTERS}”,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,尽管我知道如何在其他语言(如C和PHP)中进行正则表达式匹配,但我还是在努力使用Javascript版本的正则表达式匹配 我希望匹配{ANYCHARACTERS} 它必须具备: 一开始是{ 最后一个} 任何字符、符号等之间有1个或多个字符。 到目前为止,我有以下几点: <script type="text/javascript"> // The string that I want to perform a match on var str = "{ASTRINGINHERE£$%

尽管我知道如何在其他语言(如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>

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

您的^字符位于实际正则表达式之外。 您有两个正则表达式结尾字符/。 请参阅@kopischke关于为什么删除{1,}部分的回答。 这将解决您的问题:

/^{(.+)}$/i

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

您的^字符位于实际正则表达式之外。 您有两个正则表达式结尾字符/。 请参阅@kopischke关于为什么删除{1,}部分的回答。 这将解决您的问题:

/^{(.+)}$/i

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

patt1 = /^{.+}$/

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

patt1 = /^{.+}$/

在这种情况下,牙套不需要逃逸。@kopischke打得好。编辑。谢谢非常感谢。恩惠回报:.@kopischke你是否想过翻译成Java,谁会这么做呢?不过,你需要避开花括号。。。我只是说,:-D在这种情况下,牙套不需要逃逸。@kopischke,打得好。编辑。谢谢非常感谢。恩惠回报:.@kopischke你是否想过翻译成Java,谁会这么做呢?不过,你需要避开花括号。。。我只是说,:-D