求正则表达式 验证长度:汉字(双字节字符)50或字母100
是这样的,我的数据库字段为char(100),我在插入的字符串中既有汗字又有字母,我的正则表达式应该怎么写啊!或者用更好的办法,能实现前台验证就行!(我想请教的是前台验证...
是这样的,我的数据库字段为char(100),我在插入的字符串中既有汗字又有字母,我的正则表达式应该怎么写啊!
或者用更好的办法,能实现前台验证就行!(我想请教的是前台验证,不要提交服务器的)
谢谢两位,刚才我把两位的方法综合了一下,完成了!主要用了521oyq 的,但是现在还有最后一步,需要两位帮忙,急呀 !好用了之后我两位都有分! 谢谢了,拜托!
就是:我要点提交按钮,怎么还能让它在前台再验证一下,如果不符合,就不提交服务器!(我提交按钮用来插入数据的)
那样的话不就还要提交服务器吗,页面也又刷新了一便,能不这样吗?
是不是不能给两个人同时加分啊! 展开
或者用更好的办法,能实现前台验证就行!(我想请教的是前台验证,不要提交服务器的)
谢谢两位,刚才我把两位的方法综合了一下,完成了!主要用了521oyq 的,但是现在还有最后一步,需要两位帮忙,急呀 !好用了之后我两位都有分! 谢谢了,拜托!
就是:我要点提交按钮,怎么还能让它在前台再验证一下,如果不符合,就不提交服务器!(我提交按钮用来插入数据的)
那样的话不就还要提交服务器吗,页面也又刷新了一便,能不这样吗?
是不是不能给两个人同时加分啊! 展开
2个回答
展开全部
/[^\x00-\xff]/g
是汉字的正则.如:
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");
现在对你文本框的输入进行判断:
function checkLength(txtObj){
var val=txtObj.value;
var valLength=0;
for(var ii=0;ii<val.length;ii++){
var word=val.substring(ii,1);
if(/[^\x00-\xff]/g.test(word)){
valLength+=2;
}else{
valLength++;
}
}
if(valLength>100){
document.getElementById("msg").innerHTML="输入超出字数上限";
}
}
--------------------
这样儿调用:
<input type=text onkeyup="checkLength(this)" id="你的文本框名" runat=server>
------------------
那就把上面的方法改掉.让某控件显示错误.
在你要显示的地方加:
<div id="msg" style="color:red;font-size:12px;"></div>
------------------
后台这么写:string val=this.你的文本框名.Value;
因为它是runat=server的.
------------------
难道你在按扭的事件里.对变量都不过滤?比如对"<"."'"等等.都不过滤??
所以.在你过滤的时候.把所有变量都过滤并判断一遍.就OK了.
------------------
当然得走服务器.你最终要操作数据库不还得走服务器么?如果不想走.那就用AJAX吧.
如果纯用客户端的话.你能保证其它输入不会有非法输入么?比如最常见的内嵌<iframe>.
--------------------
这个你得问百度管理员..
是汉字的正则.如:
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");
现在对你文本框的输入进行判断:
function checkLength(txtObj){
var val=txtObj.value;
var valLength=0;
for(var ii=0;ii<val.length;ii++){
var word=val.substring(ii,1);
if(/[^\x00-\xff]/g.test(word)){
valLength+=2;
}else{
valLength++;
}
}
if(valLength>100){
document.getElementById("msg").innerHTML="输入超出字数上限";
}
}
--------------------
这样儿调用:
<input type=text onkeyup="checkLength(this)" id="你的文本框名" runat=server>
------------------
那就把上面的方法改掉.让某控件显示错误.
在你要显示的地方加:
<div id="msg" style="color:red;font-size:12px;"></div>
------------------
后台这么写:string val=this.你的文本框名.Value;
因为它是runat=server的.
------------------
难道你在按扭的事件里.对变量都不过滤?比如对"<"."'"等等.都不过滤??
所以.在你过滤的时候.把所有变量都过滤并判断一遍.就OK了.
------------------
当然得走服务器.你最终要操作数据库不还得走服务器么?如果不想走.那就用AJAX吧.
如果纯用客户端的话.你能保证其它输入不会有非法输入么?比如最常见的内嵌<iframe>.
--------------------
这个你得问百度管理员..
展开全部
function getStringLen(Str)
{
var i,len,code;
if(Str==null || Str == "") return 0;
len = Str.length;
for (i = 0;i < Str.length;i++)
{
code = Str.charCodeAt(i);
if (code > 255) {len ++;}
}
return len;
}
把字符串传过去就行了。
根据len来判断,这里他会统计len的长度,就是字母和汉字混排也可以判断出来。
这么调用:
function textBoxchangdu() {
var lenu1 = document.getElementById("textBox1").value;
var lenu= getStringLen(lenu1);
if(lenu>100)
{
document.getElementById("label").value = "文字过长。";
}
else
{
if(lenu==0)
{
document.getElementById("label").value ="textBox为空。";
}
}
}
如果你只是想在label显示长度就这么改
document.getElementById("label").value = len.ToString();
<asp:textbox id="textBox1" onblur="textBoxchangdu()" runat="server" Height="22px" Width="136px"
></asp:textbox>
{
var i,len,code;
if(Str==null || Str == "") return 0;
len = Str.length;
for (i = 0;i < Str.length;i++)
{
code = Str.charCodeAt(i);
if (code > 255) {len ++;}
}
return len;
}
把字符串传过去就行了。
根据len来判断,这里他会统计len的长度,就是字母和汉字混排也可以判断出来。
这么调用:
function textBoxchangdu() {
var lenu1 = document.getElementById("textBox1").value;
var lenu= getStringLen(lenu1);
if(lenu>100)
{
document.getElementById("label").value = "文字过长。";
}
else
{
if(lenu==0)
{
document.getElementById("label").value ="textBox为空。";
}
}
}
如果你只是想在label显示长度就这么改
document.getElementById("label").value = len.ToString();
<asp:textbox id="textBox1" onblur="textBoxchangdu()" runat="server" Height="22px" Width="136px"
></asp:textbox>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询