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

正则表达式 进行字符串输入判断
在文本框中需输入少于20条的字符串,每条字符串  如下所示:
>hsa-let-7b
TGAGGTAGTAGGTTGTGTGGTT
第一行由>开始,第一行字符串无限制,字母数据符号都可以,回车后第二行只能是TAGCU组成的字符串(不限大小写),并且第二行的长度为5-30

输入完成后提交  如果格式不正确  则提示格式错误,若字符串条数多余20条  则提示字符串条数过多


请问这样一个判断 用正则表达式怎么写呢?
------解决方案--------------------
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
</head>

<body>

<div class="box">
<textarea id="textarea"></textarea><input type="button" id="butn" value="提交" />
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#butn").click(function(){
var text = $.trim($('#textarea').val());
var textArr = text.split('\n');
if(textArr.length > 20 ){
alert('您输入的条数大于20条');
}else{
var re = /^[TAGCU]{5,30}$/i;
for(var i =1;i<textArr.length;i++){
if(!re.test(textArr[i])){
alert("第"+(i+1)+"行输入格式有误");
}
}
}
})
})
</script>
</body></html>

------解决方案--------------------
var $a = ">hsa-let-7b \r\nTGAGGTAGTAGGTTGTGTGGTT \r\n>hsa-let-7b \r\nTTTGAGGTAGTT \r\n>hsa-let-7b \r\nGGAGGTAGTAGGTTGTGTGGTT";
var $b = ">hsa-let-7b \r\nTGAGGTAGTAGGTTGTGTGGTT \r\nhsa-let-7b \r\nTTTGAGGTAGTT \r\n>hsa-let-7b \r\nGGAGGTAGTAGGTTGTGTGGTT";
var $c = ">hsa-let-7b \r\nTGAGGTAGTAGGTTGTGTGGTT \r\n>hsa-let-7b \r\nTyTGAGGTAGTT \r\n>hsa-let-7b \r\nGGAGGTAGTAGGTTGTGTGGTT";
var $r = /^>[^\r\n]*\r\n[TAGCUtagcut]{5,30}\s*\r?$/mg;
var count=0;
var s = -1;
var flag = true;
while (match = $r.exec($a))
{
  s += (match[0].length+1);
  var $rr = $r.lastIndex;
  if(s != $rr){
  flag = false;
  break;
  }
  count++;
  if(count>20){
  flag = false;
  break;
  }
}
if(!flag){
alert('error');
}