我的javascript源码哪里错了 ??

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:06:52
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Javascript Editor 2">
<TITLE> Your title </TITLE>
<script>
function check()
{
if (document.all.myform.myuser.value.replace(/\s/g,"")==""){
alert("不能存在空格");
document.all.myform.myuser.focus();
document.all.myform.myuser.value=="";
return false;

}
}
</script>
</HEAD>
<BODY>
<form name="myform" id="myform" action="www.baidu.com" onsubmit=return(check()) >
账号:<input name="myuser" type="text" id="myuser" >
密码:<input type="password">
<input type="reset"><input type="submit">
</form>

</BODY>
</HTML&

你的程序的对的,但是它的功能是检测是否为空,而不是是否存在空格,在为空、或者全部都为空格没有有效符号的时候才报错。

如果你要检测是否有空格,语句应该是:
if (document.all.myform.myuser.value.matche(/\s/))

但是,我想你要做的,不上这样吧,应该是先删除空格,然后检测是否为空,代码如下:

document.all.myform.myuser.value=document.all.myform.myuser.value.replace(/\s/g,"");
if (document.all.myform.myuser.value=="")

有空格起不了作用是因为你只将字符串中的空格或换行替换成空,而没有将整个字符串替换成空。如果输入"dsfdsf fdf"这样的,那你的就替换成了"dsfdsffdf",自然"dsfdsffdf"==""为假,所以只要字符串含有空格,你就需要把整个字符串替换为空。以下是代码,测试通过。
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Javascript Editor 2">
<TITLE> Your title </TITLE>
<script type="text/javascript">
function check()
{
if (document.all.myform.myuser.value.replace(/\w{0,}\s{1,}\w{0,}/g,"")==""){
alert("不能存在空格");
document.all.myform.myuser.focus()