2012-03-04 37 views
1

我需要在我的webapp中使用正則表達式,它允許捷克字符(ěščřžýáíéóúůďťňĎŇŤŠČŘŽÝÁÍÉÚŮ)。目前我有在正則表達式中使用捷克字符

[a-zA-Z]*\w{1,20} 

但是這不允許輸入它們。由於

+0

而把字符自己在正則表達式不起作用? – 2012-03-04 19:22:47

+0

如果您的意思是[a-zA-Zěščř] * \ w {1,20},不,它不起作用 – polohy 2012-03-04 19:25:08

+0

您是否需要將其限制爲捷克字符還是來自其他語言的字母? – svick 2012-03-04 19:27:02

回答

4
var words = Regex.Matches(inputstr, @"[ěščřžýáíéóúůďťňĎŇŤŠČŘŽÝÁÍÉÚŮa-zA-z]{1,20}") 
       .Cast<Match>() 
       .ToArray(); 
+0

好吧,如何設置它在aspx文件? (我也在做客戶端驗證) – polohy 2012-03-04 19:26:04

+1

你的問題是關於reqular表達而不是aspx。嘗試用 – 2012-03-04 19:28:15

+0

以上的字符串字符串替換你的'[a-zA-Z] * \ w {1,20}',謝謝,它工作。我只需要刪除@「部分 – polohy 2012-03-04 19:32:03

1

替代解決方案(僅適用於.NET):

[\p{Ll}\p{Lu}]{1,20} 
+0

這是什麼編碼?它爲什麼只適用於.NET? – 2012-03-13 22:51:55

+0

@Dan它們是[unicode字符類](http://msdn.microsoft.com/en-us/library/20bw873z#CategoryOrBlock)用於大寫和小寫字母,它們不能在純JavaScript中工作,只能在.NET代碼隱藏邏輯中使用。 – 2012-03-13 23:50:16

相關問題