如何做,请教各位。我不清楚中、英、数字的编码范围。
14 个解决方案
#1
if Instr(request("name"),"=")>0 or Instr(request("name"),"%")>0 or Instr(request("name"),chr(32))>0 or Instr(request("name"),"?")>0 or Instr(request("name"),"&")>0 or Instr(request("name"),";")>0 or Instr(request("name"),",")>0 or Instr(request("name"),"'")>0 or Instr(request("name"),",")>0 or Instr(request("name"),chr(34))>0 or Instr(request("name"),chr(9))>0 or Instr(request("name"),"")>0 or Instr(request("name"),"$")>0 .........then
response.write "<br>"+"<li>name含有非法字符。"
response.write ("<script>history.go(-1)</script>")
response.end
end if
response.write "<br>"+"<li>name含有非法字符。"
response.write ("<script>history.go(-1)</script>")
response.end
end if
#2
用正则表达式
#3
楼上的朋友的代码是用来验证诸如“!@#$%^”这样的字符的,思路是一个个的比较,可是还有些键盘上打不出的字符和日本平假名、片假名等等很多很多,不可能一个个的去比较,我的思路是:汉字和英文、数字都有对应的ASCII码,知到了各自的范围,检查用户名是否在这个范围内就可以了。
#4
function isName(strName)
{
return (strName.search(/^\w{1,20}$|^[^\x09^\x21-\x2f^\x3a-\x3f^\x5b-\x60^\x7b-\x7e]{1,20}$/)!=-1);
}
{
return (strName.search(/^\w{1,20}$|^[^\x09^\x21-\x2f^\x3a-\x3f^\x5b-\x60^\x7b-\x7e]{1,20}$/)!=-1);
}
#5
日文片假名:23074(a A)-23094(z Z)有范围
数字:23119(0)-23121(9)有范围
逗号是23636 .........没范围
还有好多,而且逗号分号等也没有规律,安你这样判断是不是代价也太大了?
数字:23119(0)-23121(9)有范围
逗号是23636 .........没范围
还有好多,而且逗号分号等也没有规律,安你这样判断是不是代价也太大了?
#6
可是,新浪的注册就做到了只能用中文、英文和数字。
楼上是想根据编码检查如果有在不合法范围内判断为合法,这样很复杂,如果反过来想想,只取三个范围:汉字、英文、数字。如果不在此三个范围内判断为非法 的话就没有那么复杂了。
楼上是想根据编码检查如果有在不合法范围内判断为合法,这样很复杂,如果反过来想想,只取三个范围:汉字、英文、数字。如果不在此三个范围内判断为非法 的话就没有那么复杂了。
#7
为什么没人回答了呢? 自己顶
#8
我觉得应该用正则表达式。
#9
用正则表达式不是很好嘛
#10
<input type="text" name="uesrid" onblur="Check(this.value)"/>
<script>
function Check(str)
{
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
var r = reg.test(str);
if(r==false){alert("用户名只能用英文、数字、中文,不能用别的,数字不能在开头")}
}
</script>
<script>
function Check(str)
{
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
var r = reg.test(str);
if(r==false){alert("用户名只能用英文、数字、中文,不能用别的,数字不能在开头")}
}
</script>
#11
楼上的代码 /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/ 是什么意思?看不懂
#12
to wanghr100(灰豆宝宝.net)
老兄真高手也,经常看到你贴些有分量的内容,不过,你给的这个函数里我没看出来如何做到检查数字是不是在开头的。
老兄真高手也,经常看到你贴些有分量的内容,不过,你给的这个函数里我没看出来如何做到检查数字是不是在开头的。
#13
最好2边都检测。。。。。
输入的时候用正值表达式检查
提交后再检查次,防止外部提交
输入的时候用正值表达式检查
提交后再检查次,防止外部提交
#14
有的.
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
^[\u4E00-\u9FA5|a-zA-Z] 开头只能用 中文或英文.
[\u4E00-\u9FA5|0-9a-zA-Z]* 紧接着就是可以中文英文,还有数字.
附:
Microsoft Windows脚本技术
http://vip.5d.cn/friday/upload/SCRIPT56.chm
//有正则资料,语法介绍.
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
^[\u4E00-\u9FA5|a-zA-Z] 开头只能用 中文或英文.
[\u4E00-\u9FA5|0-9a-zA-Z]* 紧接着就是可以中文英文,还有数字.
附:
Microsoft Windows脚本技术
http://vip.5d.cn/friday/upload/SCRIPT56.chm
//有正则资料,语法介绍.
#1
if Instr(request("name"),"=")>0 or Instr(request("name"),"%")>0 or Instr(request("name"),chr(32))>0 or Instr(request("name"),"?")>0 or Instr(request("name"),"&")>0 or Instr(request("name"),";")>0 or Instr(request("name"),",")>0 or Instr(request("name"),"'")>0 or Instr(request("name"),",")>0 or Instr(request("name"),chr(34))>0 or Instr(request("name"),chr(9))>0 or Instr(request("name"),"")>0 or Instr(request("name"),"$")>0 .........then
response.write "<br>"+"<li>name含有非法字符。"
response.write ("<script>history.go(-1)</script>")
response.end
end if
response.write "<br>"+"<li>name含有非法字符。"
response.write ("<script>history.go(-1)</script>")
response.end
end if
#2
用正则表达式
#3
楼上的朋友的代码是用来验证诸如“!@#$%^”这样的字符的,思路是一个个的比较,可是还有些键盘上打不出的字符和日本平假名、片假名等等很多很多,不可能一个个的去比较,我的思路是:汉字和英文、数字都有对应的ASCII码,知到了各自的范围,检查用户名是否在这个范围内就可以了。
#4
function isName(strName)
{
return (strName.search(/^\w{1,20}$|^[^\x09^\x21-\x2f^\x3a-\x3f^\x5b-\x60^\x7b-\x7e]{1,20}$/)!=-1);
}
{
return (strName.search(/^\w{1,20}$|^[^\x09^\x21-\x2f^\x3a-\x3f^\x5b-\x60^\x7b-\x7e]{1,20}$/)!=-1);
}
#5
日文片假名:23074(a A)-23094(z Z)有范围
数字:23119(0)-23121(9)有范围
逗号是23636 .........没范围
还有好多,而且逗号分号等也没有规律,安你这样判断是不是代价也太大了?
数字:23119(0)-23121(9)有范围
逗号是23636 .........没范围
还有好多,而且逗号分号等也没有规律,安你这样判断是不是代价也太大了?
#6
可是,新浪的注册就做到了只能用中文、英文和数字。
楼上是想根据编码检查如果有在不合法范围内判断为合法,这样很复杂,如果反过来想想,只取三个范围:汉字、英文、数字。如果不在此三个范围内判断为非法 的话就没有那么复杂了。
楼上是想根据编码检查如果有在不合法范围内判断为合法,这样很复杂,如果反过来想想,只取三个范围:汉字、英文、数字。如果不在此三个范围内判断为非法 的话就没有那么复杂了。
#7
为什么没人回答了呢? 自己顶
#8
我觉得应该用正则表达式。
#9
用正则表达式不是很好嘛
#10
<input type="text" name="uesrid" onblur="Check(this.value)"/>
<script>
function Check(str)
{
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
var r = reg.test(str);
if(r==false){alert("用户名只能用英文、数字、中文,不能用别的,数字不能在开头")}
}
</script>
<script>
function Check(str)
{
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
var r = reg.test(str);
if(r==false){alert("用户名只能用英文、数字、中文,不能用别的,数字不能在开头")}
}
</script>
#11
楼上的代码 /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/ 是什么意思?看不懂
#12
to wanghr100(灰豆宝宝.net)
老兄真高手也,经常看到你贴些有分量的内容,不过,你给的这个函数里我没看出来如何做到检查数字是不是在开头的。
老兄真高手也,经常看到你贴些有分量的内容,不过,你给的这个函数里我没看出来如何做到检查数字是不是在开头的。
#13
最好2边都检测。。。。。
输入的时候用正值表达式检查
提交后再检查次,防止外部提交
输入的时候用正值表达式检查
提交后再检查次,防止外部提交
#14
有的.
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
^[\u4E00-\u9FA5|a-zA-Z] 开头只能用 中文或英文.
[\u4E00-\u9FA5|0-9a-zA-Z]* 紧接着就是可以中文英文,还有数字.
附:
Microsoft Windows脚本技术
http://vip.5d.cn/friday/upload/SCRIPT56.chm
//有正则资料,语法介绍.
var reg = /^[\u4E00-\u9FA5|a-zA-Z][\u4E00-\u9FA5|0-9a-zA-Z]*$/
^[\u4E00-\u9FA5|a-zA-Z] 开头只能用 中文或英文.
[\u4E00-\u9FA5|0-9a-zA-Z]* 紧接着就是可以中文英文,还有数字.
附:
Microsoft Windows脚本技术
http://vip.5d.cn/friday/upload/SCRIPT56.chm
//有正则资料,语法介绍.