2013-04-26 44 views
4

「?-mix:」在正則表達式中的含義是什麼,在javascript/jQuery中也是如此?如果它無效,什麼是合適的替代品。什麼「?-mix:」在正則表達式中的含義

更新:這是一個完整的正則表達式/(?-mix:^[^,;]+$)/

其在鉻的JavaScript使用,我發現了以下錯誤:

Uncaught SyntaxError: Invalid regular expression: /(?-mix:^[^,;]+$)/: Invalid group

注意:我發現這有用:How to translate ruby regex to javascript? - (?i-mx:..) and Rails 3.0.3

回答

9

假設perl上下文,(?-mix)這將

  • -m禁用多匹配
  • -i禁止不區分大小寫匹配
  • -x禁用擴展的正則表達式的空白

在這裏看到:http://www.regular-expressions.info/modifiers.html

Not all regex flavors support this. JavaScript and Python apply all mode modifiers to the entire regular expression. They don't support the (?-ismx) syntax, since turning off an option is pointless when mode modifiers apply to the whole regular expressions. All options are off by default.

3

既然你現在已經明確表示這裏的上下文是javascript,我不認爲是javascript supp orts標記語法,所以它抱怨在正則表達式中找到^。由於在比賽中間你永遠無法找到比賽的開始,所以這會產生無效的正則表達式。

var re = /^[^,;]+$/mi; 

或作爲這樣一個論點:

在JavaScript中,正則表達式本身,如外指定標誌

var re = new RegExp("^[^,;]+$", "mi"); 

x標誌不支持javascript和這個特殊的正則表達式不需要i標誌。

這個特定的正則表達式試圖做的是告訴你,你匹配它的字符串是否包含除,;之外的所有字符,且不爲空。

相關問題