日期:2014-05-16  浏览次数:20378 次

高分求一正则表达式
长度7-26
只能是汉字、英文、数字和下划线;
首末字符不能是下划线
下划线不能连用

------解决方案--------------------
var m=/^[\u4e00-\u9fa5a-z0-9][\u4e00-\u9fa5a-z0-9\-]{6,20}$/i
function dd(str){
if(m.test(str)){
if(!/\-\-/g.test(str)){
alert( "true ")
}else{
alert( "false ")
}
}else{
alert( "false ")
}
}
dd( "1233 ")
dd( "-112332222 ")
dd( "11233--2222 ")
dd( "请产品-2222 ")
dd( "请产品--2222 ")
------解决方案--------------------
<script>
function test(str)
{
var str=document.form1.name1.value;
var strLength=str.replace(/[^\x00-\xff]/gi, 'xx ').length
var re=/^[\u4e00-\u9fa5a-zA-Z0-9][\u4e00-\u9fa5\w]*$/;
if(re.test(str)&&!/__/g.test(str)&&strLength> =7&&strLength <=26)
alert( "ok ");
else
alert( "no ");
}
</script>
<body>
<form name=form1>
<input name= "name1 " type=text onblur= "test() ">
</form>
</body>
是不是应把汉字作为双字节字符处理,长度为2
------解决方案--------------------
var m = /^[\u4e00-\u9fa5\da-z][\u4e00-\u9fa5\w]{6,25}[\u4e00-\u9fa5\da-z]$/;
var m1 = /__/;
function dd(str)
{
if(m.test(str) && !m1.test(str))
{
alert(str + ": true ");
}
else
{
alert(str + ": false ");
}
}
dd( "12343334 ");
dd( "_112332222 ");
dd( "11233__2222 ");
dd( "请产品你_2222 ");
dd( "请产你你品__2222 ");

------解决方案--------------------
<script language= "JavaScript ">
var re = /[a-z\d\u4e00-\u9fa5]([a-z\d\u4e00-\u9fa5]|_(?!_)){5,24}[a-z\d\u4e00-\u9fa5]/ig
alert(re.test( "abcd__2d "));
</script>