日期:2014-05-17 浏览次数:20473 次
<script type="text/javascript"> var str = "12425"; var reg = /(.)(.*)\1+/; while(reg.test(str)) { str = str.replace(reg,"$1$2"); } alert(str); </script>
------解决方案--------------------
1. 这不是正则干的活,直接字符串操作就可以了:
string result=string.Join("","12425".ToCharArray().Distinct().ToArray());
2.以密码验证为例,因为不知道你说的所谓符号指哪些,就以必需同时满足字母+数字为例:
^(?![a-zA-Z]+$)(?!\d+$)[a-zA-Z\d]+$
3.这个要看具体的情况 ,用其他方式来实现
------解决方案--------------------
第二个问题
字母+数字+特殊字符
^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$
字母+数字,字母+特殊字符,数字+特殊字符
^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$
纯数字,纯字母,纯特殊字符
^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$
------解决方案--------------------
string result=new string("12425".ToCharArray().GroupBy(a=>a).Where(g=>g.Count()==1).Select(g=>g.Key).ToArray());