Có thể sử dụng DataAnnotations của ASP.NET MVC 2 để chỉ cho phép các ký tự (không có số) hoặc thậm chí cung cấp danh sách trắng các chuỗi được cho phép không? Thí dụ?DataAnnotations - Disallow Numbers, hoặc chỉ cho phép các chuỗi đã cho
12
A
Trả lời
27
Sử dụng RegularExpressionAttribute.
Something như
[RegularExpression("^[a-zA-Z ]*$")]
sẽ phù hợp với một-z trên và chữ thường và không gian.
Một danh sách trắng sẽ giống như
[RegularExpression("white|list")]
mà chỉ nên cho phép "trắng" và "danh sách"
[RegularExpression("^\D*$")]
\ D đại diện cho ký tự không phải là số nên ở trên nên cho phép một chuỗi với nhưng 0-9.
Biểu thức thông thường khó khăn nhưng có một số công cụ kiểm tra hữu ích trực tuyến như: http://gskinner.com/RegExr/
3
Yes. Sử dụng "[biểu thức chính quy]"
một trang web tuyệt vời này trên biểu hiện thường xuyên http://www.regexlib.com/CheatSheet.aspx
1
Bạn có thể viết validator của riêng bạn mà có hiệu suất tốt hơn so với một biểu thức chính quy.
Ở đây tôi đã viết một validator whitelist cho int tính:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace Utils
{
/// <summary>
/// Define an attribute that validate a property againts a white list
/// Note that currently it only supports int type
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
sealed public class WhiteListAttribute : ValidationAttribute
{
/// <summary>
/// The White List
/// </summary>
public IEnumerable<int> WhiteList
{
get;
}
/// <summary>
/// The only constructor
/// </summary>
/// <param name="whiteList"></param>
public WhiteListAttribute(params int[] whiteList)
{
WhiteList = new List<int>(whiteList);
}
/// <summary>
/// Validation occurs here
/// </summary>
/// <param name="value">Value to be validate</param>
/// <returns></returns>
public override bool IsValid(object value)
{
return WhiteList.Contains((int)value);
}
/// <summary>
/// Get the proper error message
/// </summary>
/// <param name="name">Name of the property that has error</param>
/// <returns></returns>
public override string FormatErrorMessage(string name)
{
return $"{name} must have one of these values: {String.Join(",", WhiteList)}";
}
}
}
mẫu sử dụng:
[WhiteList(2, 4, 5, 6)]
public int Number { get; set; }
Các vấn đề liên quan
- 1. gitolite: chỉ cho phép thay đổi các tệp đã chọn
- 2. robots.txt chỉ cho phép root, không cho phép mọi thứ khác?
- 3. Chèn một số chuỗi vào chuỗi đã cho tại chỉ mục đã cho trong Python
- 4. Tại sao JSON chỉ cho phép chuỗi là khóa?
- 5. Chuỗi thời gian và stl trong R: Chỉ cho phép chuỗi số bất biến chỉ được phép
- 6. Chỉ cho phép Google CSE và không cho phép tìm kiếm tiêu chuẩn của Google trong ROBOTS.txt
- 7. Xóa \ n hoặc \ t khỏi một chuỗi đã cho
- 8. C# Regex chỉ cho phép alpha số
- 9. Cụm từ thông dụng chỉ cho phép các ký tự hoặc không gian
- 10. làm thế nào để không cho phép tất cả các url động robots.txt
- 11. Cho phép người dùng chỉ nhập các thẻ cụ thể
- 12. AutoCompleteTextView chỉ cho phép các tùy chọn được đề xuất
- 13. Vimscript có cho phép các chuỗi nhiều dòng không?
- 14. NSJSONSerialization deserialize numbers là NSDecimalNumber?
- 15. Java Generics and numbers
- 16. cv2.cornersSubPix chỉ cho phép None
- 17. Robots.txt: chỉ cho phép SE chính
- 18. cho phép bouncing cho chỉ có một hướng UITableView
- 19. Tại sao cho phép nối chuỗi ký tự chuỗi?
- 20. Chỉ cho phép hộ chiếu đã xác thực người dùng truy cập trang được bảo vệ
- 21. PHP chuỗi không cho phép < and > ký tự
- 22. Rails 4 đường ống dẫn tài sản ném "chỉ thế hệ của các đối tượng JSON hoặc mảng cho phép"
- 23. PHP preg_match - chỉ cho phép chuỗi chữ và số và - _ nhân vật
- 24. jQuery UI AutoComplete: Chỉ cho phép đã chọn giá trị từ danh sách gợi ý
- 25. Chỉ cho phép các ký tự chữ và số cho UITextField
- 26. Regex - chỉ cho phép một khoảng trống hoặc không có gì sau khi kết hợp
- 27. Cho phép chỉ chữ và số giá trị
- 28. Chỉ cho phép một phiên bản của tập lệnh python?
- 29. Chỉ định phép chiếu cho truy vấn REST GET
- 30. Java JTabbedPane cho phép Tab chuyển sang chỉ khi đúng