“-mix:”在正则表达式中是什么意思,这在javascript / jQuery中是否有效?如果它无效,那么什么是合适的替代品。
更新:这是完整的正则表达式/(?-mix:^[^,;]+$)/
它在chrome中的javascript中使用,我收到以下错误:
Uncaught SyntaxError: Invalid regular expression: /(?-mix:^[^,;]+$)/: Invalid group
注意:我发现这有用:How to translate ruby regex to javascript? - (?i-mx:..) and Rails 3.0.3
答案 0 :(得分:10)
假设perl上下文,(?-mix)
这将
见这里:http://www.regular-expressions.info/modifiers.html
并非所有正则表达式都支持此功能。 JavaScript和Python将所有模式修饰符应用于整个正则表达式。它们不支持(?-ismx)语法,因为当模式修饰符应用于整个正则表达式时,关闭选项毫无意义。默认情况下,所有选项均已关闭。
答案 1 :(得分:3)
由于您现在已经明确说明这里的上下文是javascript,我不认为javascript支持该标志语法,所以它抱怨在正则表达式中找到^
。由于你无法在匹配中找到匹配的开头,因此这会产生无效的正则表达式。
在javascript中,您指定正则表达式本身之外的标志,例如:
var re = /^[^,;]+$/mi;
或作为这样的论据:
var re = new RegExp("^[^,;]+$", "mi");
javascript不支持x
标记,此特定正则表达式不需要i
标记。
这个特殊的正则表达式试图告诉你,你匹配的字符串是否包含,
和;
以外的所有字符,并且不是空的。