ورود

View Full Version : مشکل اعداد فارسی



minaforotan
یک شنبه 14 شهریور 1395, 23:48 عصر
سلام دوستان یک فرم ثبت نام هست که یک فیلد شماره تلفن داره و من گفتم که حتما باید عدد واردش شه به این صورت



[Display(Name = "شماره همراه")]
[RegularExpression(@"[0-9]*?[0-9]+", ErrorMessage = "شماره موبایل را بدرستی وارد کنید.")]
[StringLength(11, ErrorMessage = "این فیلد باید حداکثر 11 کاراکتر باشد")]

[Required(ErrorMessage = "الزامی", AllowEmptyStrings = false)]
public string PhoneNumber { get; set; }


و ازون ور هم


@Html.TextBoxFor(model => model.PhoneNumber, new { @class = "form-control formcontrolmini", @required = "required", onfocus = "Valid()", placeholder = "09352972539", @maxlength = "11",lng = "en" })

@Html.ValidationMessageFor(model => model.PhoneNumber)



خب همه چی درسته و به خوبی کار میکنه فقط در گوشی های موبایل وقتی کاربر صفحه کلیدش رو فارسی میکنه اون وقته که مشکل به وجود میاد و این اعداد فارسی رو نمیشناسه واسه همین خطای شماره موبایل رو به درستی وارد کنید نشون داده میشه

نمیدونم دیگه باید چی کار کنم

Moien Tajik
دوشنبه 15 شهریور 1395, 00:11 صبح
وقتی با Data Annotations شما Validation رو چک میکنید چرا تو html attributes در View هم چک میکنید ؟ فقط Placeholder و Class رو بزارید بمونه بقیه رو حذف کنید ، به این صورت :



@Html.TextBoxFor(model => model.PhoneNumber, new { @class = "form-control formcontrolmini", placeholder = "09352972539"})
@Html.ValidationMessageFor(model => model.PhoneNumber)


اگر باز هم مشکلش ادامه داشت در Data Annotations ، یک RegularExpression برای اعداد فارسی هم بزارید که اعداد فارسی رو هم قبول کنه .

minaforotan
دوشنبه 15 شهریور 1395, 19:38 عصر
اگر باز هم مشکلش ادامه داشت در Data Annotations ، یک RegularExpression برای اعداد فارسی هم بزارید که اعداد فارسی رو هم قبول کنه .

Data Annotations اش به چه صورت هست ؟برای اعداد فارسی که نمیشه نوشت

Moien Tajik
دوشنبه 15 شهریور 1395, 21:45 عصر
راه درستش اینه که شما phone number رو اصلا string نگیرید ! باید int تعریفش کنید که دیگه نیاز نباشه براش regex بزنید که عدد فقط قبول کنه ! برای تعداد ارقام هم Range میزاشتید .

این Regex رو امتحان کنید ، چک کردن اعداد فارسی ( عربی ) یا انگلیسی هستش :


^[\u0660-\u0669$|^[0-9]*$


https://regex101.com/r/vP5sF1/1

از این کدتون هم :

@Html.TextBoxFor(model => model.PhoneNumber, new { @class = "form-control formcontrolmini", @required = "required", onfocus = "Valid()", placeholder = "09352972539", @maxlength = "11",lng = "en" })


این رو حذف کنید :

lng = "en"