js非法字符检测

JavaScript018

js非法字符检测,第1张

1、用RegExp的exec()方法,该方法每次返回一个匹配,找不到时返回null

2、例如,str='1111哈哈    嘿嘿',第一次re.exec(str)返回'哈哈',第二次re.exec(str)返回'嘿嘿',第三次返回null。如下图:

注意:浏览器会禁止运行此脚本。你必须要让浏览可以运行脚本,才行。否则浏览器仍然会提交数据。其实我建议你用Ajax来保存数据,这样就不会出现上面的问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title><?php echo $website_title ?></title>

</head>

<body>

<script language="javascript">

functioncontain(str,charset)// 字符串包含测试函数

{

var i

for(i=0i<charset.lengthi++)

if(str.indexOf(charset.charAt(i))>=0)

return true

return false

}

function CheckForm()

{

var oContain = document.getElementById("contain")

if(contain(oContain.value,"%\(\)><")){

alert("输入了非法字符")

return false

}else{

return true

// alert("true")

}

// if ((contain(document.form.NAME.value,"%\(\)><")) || (contain(document.form.MESSAGE.value,"%\(\)><")))

// {

//

// alert("输入了非法字符")

// document.form.NAME.focus()

// return false

// }else{

// alert("dddd")

// return true

// }

}

</script>

<form id="form" name="form" onsubmit='if(CheckForm())return trueelse return false' method="POST" action="<%=MM_editAction%>">

<label>

<input type="text" id="contain" name="contain" id="contain"/>

</label>

<label>

<input type="submit" name="Submit" value="提交" />

</label>

<input type="hidden" name="MM_insert" value="form">

</form>

</body>