2014-02-07 50 views
0

我试图检测字符串变量:{ext_1}{ext_1alpha}{ext_aplpha1} 我的正则表达式:/{ext_(^[0-9,a-z]+$)}/gijavascript |匹配字母或数字串

var arr = str.match(/{ext_(^[0-9,a-z]+$)}/gi); 

但这是错误的。我怎么解决这个问题?

回答

2

你有anchors^$)在正则表达式的中间,他们永远不会匹配。

使用

/\{ext_([A-Z0-9]+)\}/gi 

你也不想逗号你的性格类,除非你想在你的字符串匹配实际逗号字符。另外,跳过大括号是个好主意,因为它们在正则表达式中可以有特殊含义。

+0

值得注意的是,大括号也需要逃避,如图中的改变正则表达式。 :) – UweB

+0

@UweB:不是真的;他们只需要逃避他们可能被误解的地方(这里不是这种情况)。但这样做仍然是一个好习惯。 –

+0

不起作用。这个表达式只能检测到数字:/ {ext _(\ d +)}/gi b,它可以工作,但是我的字符串可以包含数字或字母...... – user889349

相关问题