高分求一JS正则表达式 2-7个汉字,或4-14个字符(数字、字母和"_")。正则表达式该怎么结合起来?求高手赐教。。在线等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ([\u4e00-\u9fa5]{2,7})|([0-9a-zA-Z_]{4,14}) /^([\u4e00-\u9fa5]{2,7})|([0-9a-zA-Z_]{4,14})$/就是不行 /^([\u4e00-\u9fa5]{2,7})|([0-9a-zA-Z_]{4,14})$/ ^([\u4e00-\u9fa5]{2,7}|[0-9a-zA-Z_]{4,14})$ (^[\u4e00-\u9fa5]{2,7}$)|(^([0-9a-zA-Z_]{4-14})$)这样就好了,上面写的不能排除 "啊啊啊as" 这样的 (^[\u4e00-\u9fa5]{2,7}$)|(^([0-9a-zA-Z_]{4,14})$)写错了... 改成这样 汉字是可以了 但是4-14个字符就不行了/^([\u4e00-\u9fa5]{2,7}$)|(^([0-9a-zA-Z_]{4-14}))+$/ (^[\u4e00-\u9fa5]{2,7}$)|(^([0-9a-zA-Z_]{4-14})$) 我这个写错了呢(^[\u4e00-\u9fa5]{2,7}$)|(^([0-9a-zA-Z_]{4,14})$)这样的,真不好意思 ^([\u4e00-\u9fa5]{2,7}|[0-9a-zA-Z_]{4,14})$ /^(([\u4e00-\u9fa5]{2,7})|([0-9a-zA-Z_]{4-14}))$/给分呀,呵呵 2-7个汉字,或4-14个字符(数字、字母和"_")。混写也可以检测.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <script type="text/javascript"> function TestLength(){ var s = document.getElementById("mm").value; // "输入的字符串 document.getElementById('inputid').value"; var r1 = /[^_0-9a-zA-Z\u4e00-\u9fa5]/g; var r2 = /[\u4e00-\u9fa5]/g; var length = 0; if (r1.exec(s)) { alert("仅 汉字 数字 字母和 _"); return false; } else { length = s.replace(r2,"**").length; if(length >14 || length < 2){ alert("2-7个汉字,或4-14个字符(数字、字母和'_')。当前长度:" + length); return false; } else { alert("ok"); return true; } } } </script></head><body> <input type="text" id="mm" /> <input type="button" onclick="TestLength()" value=" test " /></body></html> 汉字和字符是否可以混合出现,这个是关键,看你说了半天,也没见你说到这个点上如果是混合的,在之前写的一个正则例子的基础上改下源字符串:<input id="source" type="text" style="width:300px;"><br><br><input type="submit" value="正则统计" onclick="regex()"> <input type="submit" value="ASCII统计" onclick="ascii()"><br><br>统计结果:<input id="result" type="text" style="width:300px;"><br/><br/><br/><br/>验证:任意汉字和字母组合在4到14字节间<br/><br/><input id="byte" type="text" onblur="checkByte()" style="width:300px;"><br/><br/><div id="anchorDIV"></div><script type="text/javascript">document.close();document.open();function ascii(){ var str = document.getElementById("source").value; document.getElementById("result").value = asciilen(str);}function regex(){ var str = document.getElementById("source").value; document.getElementById("result").value = asciilen(str);}function asciilen(src){ var byteLen=0; var len=src.length; if(src) { for(var i=0; i<len; i++) { if(src.charCodeAt(i)>255) { byteLen += 2; } else { byteLen++; } } return byteLen; } else { return 0; }}function regexlen(src){ return src.replace(/[^\x00-\xFF]/g,'**').length;}function checkByte(){ var str = document.getElementById("byte").value; var len = regexlen(str); if(len < 4 || len > 14) { document.getElementById("anchorDIV").innerHTML="<font color='red'>输入字符不符合长度限制!</font>"; } else { if(/^[\u4e00-\u9fa5a-zA-Z0-9_]{2,14}$/.test(str)) { document.getElementById("anchorDIV").innerHTML="<font color='green'>符合要求!</font>"; } else { document.getElementById("anchorDIV").innerHTML="<font color='red'>输入字符不符合规则!</font>"; } }}</script> 两个IIS日起错误,高手看下,谢谢 关于colorBar相册控件 有关界面的一个小问题 问个类似继承的问题, C# 已知一个XMLDocument,一个XSLDocment,怎么transformNode 得到一个转换后的xml字符串? 如果Enableviewstate=false DATAGRID 的自定义分页功能还可以用吗? stmp发送邮件失败 新装的运行环境,为什么.cs不能用? 基于.Net技术开发的免费域名系统!!欢迎大家来测试!! 如何实现这样的排序问题? 关于一句代码的问题 谁给个实现这种功能的思路
写错了...
改成这样 汉字是可以了 但是4-14个字符就不行了/^([\u4e00-\u9fa5]{2,7}$)|(^([0-9a-zA-Z_]{4-14}))+$/
这样的,真不好意思
给分呀,呵呵
混写也可以检测.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title> <script type="text/javascript">
function TestLength(){
var s = document.getElementById("mm").value; // "输入的字符串 document.getElementById('inputid').value";
var r1 = /[^_0-9a-zA-Z\u4e00-\u9fa5]/g;
var r2 = /[\u4e00-\u9fa5]/g;
var length = 0;
if (r1.exec(s)) {
alert("仅 汉字 数字 字母和 _");
return false;
} else {
length = s.replace(r2,"**").length;
if(length >14 || length < 2){
alert("2-7个汉字,或4-14个字符(数字、字母和'_')。当前长度:" + length);
return false;
} else {
alert("ok");
return true;
}
}
}
</script></head>
<body>
<input type="text" id="mm" />
<input type="button" onclick="TestLength()" value=" test " />
</body>
</html>
<br><br>
<input type="submit" value="正则统计" onclick="regex()">
<input type="submit" value="ASCII统计" onclick="ascii()">
<br><br>
统计结果:<input id="result" type="text" style="width:300px;">
<br/><br/>
<br/><br/>
验证:任意汉字和字母组合在4到14字节间
<br/><br/>
<input id="byte" type="text" onblur="checkByte()" style="width:300px;">
<br/><br/>
<div id="anchorDIV"></div>
<script type="text/javascript">
document.close();
document.open();
function ascii()
{
var str = document.getElementById("source").value;
document.getElementById("result").value = asciilen(str);
}
function regex()
{
var str = document.getElementById("source").value;
document.getElementById("result").value = asciilen(str);
}function asciilen(src)
{
var byteLen=0;
var len=src.length;
if(src)
{
for(var i=0; i<len; i++)
{
if(src.charCodeAt(i)>255)
{
byteLen += 2;
}
else
{
byteLen++;
}
}
return byteLen;
}
else
{
return 0;
}
}function regexlen(src)
{
return src.replace(/[^\x00-\xFF]/g,'**').length;
}function checkByte()
{
var str = document.getElementById("byte").value;
var len = regexlen(str);
if(len < 4 || len > 14)
{
document.getElementById("anchorDIV").innerHTML="<font color='red'>输入字符不符合长度限制!</font>";
}
else
{
if(/^[\u4e00-\u9fa5a-zA-Z0-9_]{2,14}$/.test(str))
{
document.getElementById("anchorDIV").innerHTML="<font color='green'>符合要求!</font>"; }
else
{
document.getElementById("anchorDIV").innerHTML="<font color='red'>输入字符不符合规则!</font>";
}
}
}
</script>