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

输入检查 对输入的字符串格式进行判断
各位哥哥姐姐过年好啊~~  
 
有个 文本输入框 检查条件有点多,妹子的脑袋不够用了,特来请教

输入的格式如下:
>dakeinvn
ACGTUacgtu


以 上 作 为 入 的 一条 信 息,都是以>开头,第一行字符串无限制,回车后第二行开始只能是有ACGTU(大小写不限)组成的,但是第二行的长度为5-30,并且在这个输入框中最多只能输入20条上述信息,如果格式有误则弹窗提示格式有误,若信息数量超过20条则弹窗提示信息条数有限制。


不知道这么说,大家是否看的明白……  还请哥哥姐姐们多多指教


------解决方案--------------------
var $a = '>dakeinvn\nAcGTUacgtuA\r\n>dakeinvn\r\naCGTUacgtuer2\n>dakeinvn\nACgtUacgtu3\r\n>dakeinvn\r\nACGTUacgtuer4\r\n';
var $aa = $a.replace(/ACGTU/gi,'ACGTU');
var $r = />[^\r\n]*\r?\nACGTU[^\r\n]{5,30}\r?\n/g;
var $m = $aa.match($r);

------解决方案--------------------

if(!/^(>.*\r?\nACGTU.{5,30}(\r?\n
------解决方案--------------------
$)){1,20}$/i.test(str))
alert("格式有误");

------解决方案--------------------
<style>
textarea{ resize:none; overflow:auto; width:500px;height:300px;}
</style>
<script>
window.onload=function()
{
var oBtn=document.getElementById('btn');
var oText=document.getElementById('text');
oBtn.onclick=function()
{
var pattern_1=/^(>[^\n]*?\nACGTU[^\n>]{0,25}\s*?)+$/ig;
var pattern_2=/^(>[^\n]*?\nACGTU[^\n>]{0,25}\s*?){1,20}$/ig;

var str=oText.value;
if(!pattern_1.test(str))
{
alert('格式有错!');
return;
}
if(!pattern_2.test(str))
{
alert('信息条数有限制!');
return;
}
alert('符合要求!');
}
}
</script>
</head>
<body>
<textarea id="text"></textarea>
    <input type="button" value="检测" id="btn" />
    </body>