我需要验证文本框以验证C#中的电话号码,只允许使用连字符( - )和整数值。
我想要一个只允许那些的正则表达式。
提前致谢
答案 0 :(得分:2)
尝试以下方法:
"^[0-9]+(-[0-9]+)*$"
它允许穿插连字符但不是双连字符的数字,因此“3-4”是正确的,但“23--5”不是。
答案 1 :(得分:1)
假设你在C#中验证:
var regex = new Regex(@"^(?:[0-9]+(?:-[0-9])?)*$");
但是,我也会接受国家/地区代码(您需要加前缀)和空格。应该接受这些空格,因为用户可以输入它们,并且当它存储到数据库中时,它们很容易从字符串中剥离。当字符串显示给用户时,应该重新格式化以具有一些空格。
编辑:我喜欢markijbema的版本,不接受双连字符,所以我把它改成了类似的匹配。答案 2 :(得分:0)
C#.net拥有自己的表达式编辑器
这是一个例子“(((\ d {3})?)|(\ d {3} - ))?\ d {3} - \ d {4}”