2012-04-16 98 views
1

我有一个自定义字段emberjs这样emberjs字段验证正则表达式

});

在前端

,我指定的正则表达式是这样的:

<p>{{view Rewards.NameTextField size="50px" label="First Name" Regex="/^[A-Za-z-'.\s]+$/"}}</p> 

这是一个问题,因为当我这样做“this.get(‘正则表达式’)”的数据视图,其值为

//^[A-Za-z-'.\s]+$//

导致我的正则表达式来正确评估。那么我如何动态地将正则表达式值分配给模板中的视图?

感谢先进!

+0

这个正则表达式很糟糕。你想做什么? – 2012-04-16 19:26:42

+0

你是对的,正则表达式坏了。我在开始和结束时删除了斜线,所以现在只是Regex =“^ [A-Za-z - '。\ s] + $”,它正在工作!在App js中获取正则表达式值时,使用斜线会导致额外的斜线。谢谢! – manni 2012-04-16 19:52:14

回答

2

我正要建议删除斜杠,但在字符类中还有一个非转义的连字符。这将无法匹配文字-字符。如果你想从字面上处理的最后一个连字符,您应该正则表达式更改为以下之一:

  • ^[A-Za-z'.\s-]+$ - 连字符末
  • ^[-A-Za-z'.\s]+$ - 连字符开头
  • ^[A-Za-z\-'.\s]+$ - 逃脱连字符

我在Stack Overflow上看到了这个错误。请查看this article from regular-expressions.info,了解连字符如何在字符类中工作(请参阅“字符类内部的元字符”一节)。

0

我在开始和结束时删除了斜线,所以现在它只是Regex="^[A-Za-z-'.\s]+$",它的工作!在App js中获取正则表达式值时,斜线会导致额外的斜线。结果是

<p>{{view Rewards.NameTextField size="50px" label="First Name" Regex="^[A-Za-z-'.\s]+$"}} </p>