2012-06-15 104 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