用于逗号分隔字符串的ASP.NET MVC正则表达式

时间:2015-06-29 05:51:55

标签: c# asp.net asp.net-mvc

我需要在我的ASP.NET MVC 5项目中使用正则表达式进行MVC不显眼的客户端验证。

有效输入是逗号分隔的字符串值,例如:string1,string2,string 3等。

我尝试使用逗号分隔字符串的regEx模式,但它没有按预期工作。谁能告诉我下面的表达方式有什么不对?

[RegularExpression(@"/^[a-zA-Z]{1,20},[a-zA-Z]{1,20}$/",
                        ErrorMessage = "Please enter comma separated list")]
    public string SettingOptions { get; set; }

先谢谢。

3 个答案:

答案 0 :(得分:2)

这适用于您的示例string1,string2,string 3等:

^[a-zA-Z0-9 ,]+$


[RegularExpression(@"^[a-zA-Z0-9 ,]+$"]

答案 1 :(得分:0)

试试吧。

"[a-zA-Z]{1,20},[a-zA-Z]{1,20}"

因为^$表示字符串的开头和结尾。 它只允许string1,string2

答案 2 :(得分:0)

要将正则表达式与逗号分隔的字符串相匹配,请使用正则表达式,例如:

public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> { List<AdapterData> mItems; public Adapter() { super(); mItems = new ArrayList<>(); AdapterData data = new AdapterData(); data.setName("dummy text"); data.setNameTwo(""); data.setNameThree(""); mItems.add(data); data = new AdapterData(); data.setName("dummy text"); data.setNameTwo("dummy text"); data.setNameThree(""); mItems.add(data); data = new AdapterData(); data.setName(""); data.setNameTwo("dummy text"); data.setNameThree(""); mItems.add(data); data = new AdapterData(); data.setName(""); data.setNameTwo("dummy text"); data.setNameThree("dummy text"); mItems.add(data); } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View v = LayoutInflater.from(viewGroup.getContext()) .inflate(R.layout.recycler_view_card_item, viewGroup, false); return new ViewHolder(v); } @Override public void onBindViewHolder(ViewHolder viewHolder, int i) { AdapterData data = mItems.get(i); viewHolder.mName.setText(data.getName()); viewHolder.mNameTwo.setText(data.getNameTwo()); viewHolder.mNameThree.setText(data.getNameThree()); } @Override public int getItemCount() { return mItems.size(); } class ViewHolder extends RecyclerView.ViewHolder{ public TextView mName; public TextView mNameTwo; public TextView mNameThree; public ViewHolder(View itemView) { super(itemView); mName = (TextView)itemView.findViewById(R.id.layoutName); mNameTwo = (TextView)itemView.findViewById(R.id.layoutNameTwo); mNameThree = (TextView)itemView.findViewById(R.id.layoutNameThree); } } }

如果您想删除号码,则可以删除0-9要求。

经过进一步审核后,这个正则表达式可能会出现小的差异,并提出了一个可能更有帮助的替代方案。之前的正则表达式不允许在每个分隔的字符串项中留出空格。

[0-9a-zA-Z]+(,[0-9a-zA-Z]+)*