2016-07-04 98 views
0

我現在有一個正則表達式來我的應用程序,它看起來像這樣內驗證字段:正則表達式接受 - 字符

^(?:(?:\w|[-])+\.(?:(?:(?:\w|[-])+|\.))*(?:\/(?:\w|[-])*)*|\w*)$

不幸的是一些這方面不起作用。

  • AAA - 通行證 - 正確

  • aaa.aaa - 通過 - 正確

  • aaa.aaa-AAA - 通過 - 正確

  • AAA -aaa - 失敗 - 錯誤

我怎樣才能改變我的正則表達式,以使最後一個場景通過?

+1

你應該做點可選:'^(:(?:??\ W | [ - ])+ \( ?:(?:(?:\ w | [ - ])+ | \。))*(?:\ /(?:\ w | [ - ])*)* | \ w *)$' –

回答

1

第一個\.會導致您的上一個表達式失敗。由於有更多的組,所以表達式的第一部分必須匹配。

如果您使點是可選的,則表達式有效。

不知道,但也許你可以簡化這樣的表達:

[A-Za-z]+([\-\.][A-Za-z]+)* 
+1

不過, thr的錨必須在場。 –