c#求一个数据合法性正则表达式。

需求:textbox只能输入数字英文减号,首位不能是减号,并且减号不能连续出现两次,如xz-rl-0900匹配,xz--rl不匹配,-xz不匹配。

想法:textchange()里写如果不匹配就清空字符串并报错,想了一下如果正则要求末位也不为减号,可能无法实现,每次输-就会清空串,想法是在buttonOKClick()时再验证一下串的最后一位是不是‘-’,如果是再清空一次。

才学了2个月的新手,请大家想想更好的方法,请大家帮忙提供正则表达式,感谢!

悬赏弄错了,少了点哈,解决再补一下。

3个回答

^[a-zA-Z0-9]+([\-][a-zA-Z0-9]+)*([\-]){0,1}$

末尾不能减号

 ^[a-zA-Z0-9]+([\-][a-zA-Z0-9]+)*$

^\w((-)?\w+)*$

xiaomad
xiaomad 回复mahongmin1987: 我是按你说的最后不能输入-那个要求来写的
一年多之前 回复
mahongmin1987
mahongmin1987 谢谢,您这个不行,我试了在textchange事件里输入-号,比如xz-的时候,直接就会清空text
一年多之前 回复

你这个需求很简单,关注两个事件即可:
1、textValueChange() 当往text里边输入字符,检查该字符是否为有效字符(在0-9或者英文),
----如果为非法字符输入,则让该次输入的字符无效(即使不改变text的值),同理,你也可以用次方法来判断第一个字符是否有效(第一个字符为-时无效)
2、buttonOKClick()
----该方法用来判断最末尾的字符是否有效(即是否为-)

纯粹手打,有用的话还望采纳

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐