检查textarea每行的内容是否符合要求
CSDN看到的的问题,描述如下
现在的情况是这样。JSP一个多行文本输入框。用户可以在上面输入电话号码,最少为一个,暂时没有上限,现在遇到一个问题,当用户输入的电话号码大于10个的时候(这里为了测试方便,所以只输入10个,实际情况不会少于1W个),当这些电话号码当于有一个或多个出错(如:电话号码长度不是11位,电话号码其中包含了英文),服务端(Action)会拒绝提交,我想做的是,提醒用户出错电话号码的位置在哪里,方便用户修改,请问各位高手应该怎么做。
下面是解决方案,不过每次只定位选择一行输入错误的行。代码如下
原创文章,转载请注明出处:检查textarea每行的内容是否符合要求
现在的情况是这样。JSP一个多行文本输入框。用户可以在上面输入电话号码,最少为一个,暂时没有上限,现在遇到一个问题,当用户输入的电话号码大于10个的时候(这里为了测试方便,所以只输入10个,实际情况不会少于1W个),当这些电话号码当于有一个或多个出错(如:电话号码长度不是11位,电话号码其中包含了英文),服务端(Action)会拒绝提交,我想做的是,提醒用户出错电话号码的位置在哪里,方便用户修改,请问各位高手应该怎么做。
下面是解决方案,不过每次只定位选择一行输入错误的行。代码如下
+展开
-HTML
<textarea id="ta" rows="20" cols="40">
11111111111
1111111111
11111111111
11111111111
11111111111
111111111a1
11111111b11
22</textarea>
<input type="button" onclick="ck()" value="提交" />
<script>
var isIE=!!document.all;
function ck(){
var ta=document.getElementById('ta'),arr=ta.value.split(/[\r\n]/)
,rx=/^\d{11}$///要验证行数据是否正确的正则表达式,当然也可以在下面的if语句里面判断下
,findErr=false;
ta.focus();
for(var i=0;i<arr.length;i++)
if(arr[i]!=''&&!rx.test(arr[i])){//行内容不为空并且填写内容不符合规格时
//========FireFox设置这两个参数就可以选择内容了
ta.selectionStart=i*12;
ta.selectionEnd=ta.selectionStart+arr[i].length;
//===========如果是IE得使用createTextRange
if(isIE){
var rng=ta.createTextRange();
//将开始点和结束点在容器起始位置重合
rng.moveStart("character",-ta.value.length);
rng.moveEnd("character",-ta.value.length);
rng.collapse(true);
rng.moveStart('character',ta.selectionStart);
rng.moveEnd('character',arr[i].length);
rng.select();
}
findErr=true;break;
}
if(findErr)alert('高亮地方电话号码输入有错误!');
else alert('验证成功!~~~');
}
</script>
11111111111
1111111111
11111111111
11111111111
11111111111
111111111a1
11111111b11
22</textarea>
<input type="button" onclick="ck()" value="提交" />
<script>
var isIE=!!document.all;
function ck(){
var ta=document.getElementById('ta'),arr=ta.value.split(/[\r\n]/)
,rx=/^\d{11}$///要验证行数据是否正确的正则表达式,当然也可以在下面的if语句里面判断下
,findErr=false;
ta.focus();
for(var i=0;i<arr.length;i++)
if(arr[i]!=''&&!rx.test(arr[i])){//行内容不为空并且填写内容不符合规格时
//========FireFox设置这两个参数就可以选择内容了
ta.selectionStart=i*12;
ta.selectionEnd=ta.selectionStart+arr[i].length;
//===========如果是IE得使用createTextRange
if(isIE){
var rng=ta.createTextRange();
//将开始点和结束点在容器起始位置重合
rng.moveStart("character",-ta.value.length);
rng.moveEnd("character",-ta.value.length);
rng.collapse(true);
rng.moveStart('character',ta.selectionStart);
rng.moveEnd('character',arr[i].length);
rng.select();
}
findErr=true;break;
}
if(findErr)alert('高亮地方电话号码输入有错误!');
else alert('验证成功!~~~');
}
</script>
加支付宝好友偷能量挖...
原创文章,转载请注明出处:检查textarea每行的内容是否符合要求