僅接受波斯字的正規表示式
在自訂表單驗證器只需要波斯字的情況下,以下程式碼最初看起來很有前途:
var myregex = new Regex(@"^[\u0600-\u06FF]+$");
if (myregex.IsMatch(mytextBox.Text))
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
登入後複製
但是,它未能偵測到特定的波斯字元(帶、帶、帶、帶)。本文深入研究了該問題並提供了解決方案。
錯誤的假設
[u0600-u06FF] 和 [Î-Ì] 是波斯語的不正確字元範圍驗證。
-
[u0600-u06FF] 包含 209 個不必要的字符,包括阿拉伯數字。
-
[Î-Ì] 包含 117 個字元額外字元。
準確字符範圍
為了確保準確性,應使用以下範圍使用過的:
-
字母:
- ^[???????????????????????????????? ???????? $
- ^[u0622u0627u0628u067Eu062A-u062Cu0686u062D-u0632u0698u0633-u063Au0641u0642u06A98u0633-u063Au0641u0642u06A9u] $
-
數字:
- ^[01234567789] $
- ^[01234567789] $
^[01234567789] $
- $
[ ٌ ًّ َ ِ ُ ْ ]
[u202Cu064Bu064Cu064E-u0652]
結論利用正確的字詞範圍,可以將拒絕正確的波斯字符的無效。此外,波斯語支援阿拉伯語中使用的變音符號,但在驗證過程中它們的包含是可選的。
以上是如何建立僅驗證波斯字元的可靠正規表示式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!