2012-04-16 136 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>