本文目录一览:
- 1、js 非法字符检测代码
- 2、Js注入检测函数咋办
- 3、求前端验证js代码
- 4、如何测试js代码
- 5、求一段js 判断设备跳转网页的代码
- 6、高分!!求js代码。可以验证一串字符串中里面的引号,括号。尖括号左右匹配的?
js 非法字符检测代码
注意:浏览器会禁止运行此脚本。你必须要让浏览可以运行脚本,才行。否则浏览器仍然会提交数据。其实我建议你用Ajax来保存数据,这样就不会出现上面的问题。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title?php echo $website_title ?/title
/head
body
script language="javascript"
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;icharset.length;i++)
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 true;else 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
Js注入检测函数咋办
答:首先要截获检测函数的动态代码,动态执行js代码有两种方法,一是eval,二是function。
现在很多网站都上了各种前端反爬手段,无论手段如何,最重要的是要把包含反爬手段的前端javascript代码加密隐藏起来,然后在运行时实时解密动态执行。
动态执行js代码无非两种方法,即eval和Function。那么,不管网站加密代码写的多牛,我们只要将这两个方法hook住,即可获取到解密后的可执行js代码。
注意,有些网站会检测eval和Function这两个方法是否原生,因此需要一些小花招来忽悠过去
求前端验证js代码
这是一般表单中会用到的 1. 长度限制
script
function test()
{
if(document.a.b.value.length50)
{
alert(”不能超过50个字符!”);
document.a.b.focus();
return false;
}
}
/script
form name=a onsubmit=”return test()”
textarea name=”b” cols=”40″ wrap=”VIRTUAL” rows=”6″/textarea
input type=”submit” name=”Submit” value=”check”
/form
2. 只能是汉字
input onkeyup=”value=”/oblog/value.replace(/[^\u4E00-\u9FA5]/g,”)”
3.” 只能是英文
script language=javascript
function onlyEng()
{
if(!(event.keyCode=65event.keyCode=90))
event.returnvalue=false;
}
/script
input onkeydown=”onlyEng();”
4. 只能是数字
script language=javascript
function onlyNum()
{
if(!((event.keyCode=48event.keyCode=57)||(event.keyCode=96event.keyCode=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
/script
input onkeydown=”onlyNum();”
5. 只能是英文字符和数字
input onkeyup=”value=”/oblog/value.replace(/[\W]/g,””) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,”))”
6. 验证邮箱格式
SCRIPT LANGUAGE=javascript RUNAT=Server
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert(”oh”);
}
/SCRIPT
input type=text onblur=isEmail(this.value)
7. 屏蔽关键字(这里屏蔽***和****)
script language=”javascript1.2″
function test() {
if((a.b.value.indexOf (”***”) == 0)||(a.b.value.indexOf (”****”) == 0)){
alert(”:)”);
a.b.focus();
return false;}
}
/script
form name=a onsubmit=”return test()”
input type=text name=b
input type=”submit” name=”Submit” value=”check”
/form
8. 两次输入密码是否相同
FORM METHOD=POST ACTION=”"
input type=”password” id=”input1″
input type=”password” id=”input2″
input type=”button” value=”test” onclick=”check()”
/FORM
script
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert(”false”)
input1.value = “”;
input2.value = “”;
}
else document.forms[0].submit();
}
}
/script
够了吧 :)
屏蔽右键 很酷
oncontextmenu=”return false” ondragstart=”return false” onselectstart=”return false”
加在body中
二
2.1 表单项不能为空
script language=”javascript”
!–
function CheckForm()
{
if (document.form.name.value.length == 0) {
alert(”请输入您姓名!”);
document.form.name.focus();
return false;
}
return true;
}
–
/script
2.2 比较两个表单项的值是否相同
script language=”javascript”
!–
function CheckForm()
if (document.form.PWD.value != document.form.PWD_Again.value) {
alert(”您两次输入的密码不一样!请重新输入.”);
document.ADDUser.PWD.focus();
return false;
}
return true;
}
–
/script
2.3 表单项只能为数字和”_”,用于电话/银行帐号验证上,可扩展到域名注册等
script language=”javascript”
!–
function isNumber(String)
{
var Letters = ”1234567890-”; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )==’-')
return false;
if( String.charAt( String.length - 1 ) == ’-’ )
return false;
for( i = 0; i String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) 0)
return false;
}
return true;
}
function CheckForm()
{
if(! isNumber(document.form.TEL.value)) {
alert(”您的电话号码不合法!”);
document.form.TEL.focus();
return false;
}
return true;
}
–
/script
2.4 表单项输入数值/长度限定
script language=”javascript”
!–
function CheckForm()
{
if (document.form.count.value 100 || document.form.count.value 1)
{
alert(”输入数值不能小于零大于100!”);
document.form.count.focus();
return false;
}
if (document.form.MESSAGE.value.length10)
{
alert(”输入文字小于10!”);
document.form.MESSAGE.focus();
return false;
}
return true;
}
//–
/script
2.5 中文/英文/数字/邮件地址合法性判断
SCRIPT LANGUAGE=”javascript”
!–
function isEnglish(name) //英文值检测
{
if(name.length == 0)
return false;
for(i = 0; i name.length; i++) {
if(name.charCodeAt(i) 128)
return false;
}
return true;
}
function isChinese(name) //中文值检测
{
if(name.length == 0)
return false;
for(i = 0; i name.length; i++) {
if(name.charCodeAt(i) 128)
return true;
}
return false;
}
function isMail(name) // E-mail值检测
{
if(! isEnglish(name))
return false;
i = name.indexOf(” at ”);
j = name dot lastIndexOf(” at ”);
if(i == -1)
return false;
if(i != j)
return false;
if(i == name dot length)
return false;
return true;
}
function isNumber(name) //数值检测
{
if(name.length == 0)
return false;
for(i = 0; i name.length; i++) {
if(name.charAt(i) ”0″ || name.charAt(i) ”9″)
return false;
}
return true;
}
function CheckForm()
{
if(! isMail(form.Email.value)) {
alert(”您的电子邮件不合法!”);
form.Email.focus();
return false;
}
if(! isEnglish(form.name.value)) {
alert(”英文名不合法!”);
form.name.focus();
return false;
}
if(! isChinese(form.cnname.value)) {
alert(”中文名不合法!”);
form.cnname.focus();
return false;
}
if(! isNumber(form.PublicZipCode.value)) {
alert(”邮政编码不合法!”);
form.PublicZipCode.focus();
return false;
}
return true;
}
//–
/SCRIPT
2.6 限定表单项不能输入的字符
script language=”javascript”
!–
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;icharset.length;i++)
if(str.indexOf(charset.charAt(i))=0)
return true;
return false;
}
function CheckForm()
{
if ((contain(document.form.NAME.value, ”%\(\)”)) || (contain(document.form.MESSAGE.value, ”%\(\)”)))
{
alert(”输入了非法字符”);
document.form.NAME.focus();
return false;
}
return true;
}
//–
/script
1. 检查一段字符串是否全由数字组成
—————————————
script language=”Javascript”!–
function checkNum(str){return str.match(/\D/)==null}
alert(checkNum(”1232142141″))
alert(checkNum(”123214214a1″))
// –/script
2. 怎么判断是否是字符
—————————————
if (/[^\x00-\xff]/g.test(s)) alert(”含有汉字”);
else alert(”全是字符”);
3. 怎么判断是否含有汉字
—————————————
if (escape(str).indexOf(”%u”)!=-1) alert(”含有汉字”);
else alert(”全是字符”);
4. 邮箱格式验证
—————————————
//函数名:chkemail
//功能介绍:检查是否为Email Address
//参数说明:要检查的字符串
//返回值:0:不是 1:是
function chkemail(a)
{ var i=a.length;
var temp = a.indexOf(’@');
var tempd = a.indexOf(’.');
if (temp 1) {
if ((i-temp) 3){
if ((i-tempd)0){
return 1;
}
}
}
return 0;
}
5. 数字格式验证
—————————————
//函数名:fucCheckNUM
//功能介绍:检查是否为数字
//参数说明:要检查的数字
//返回值:1为是数字,0为不是数字
function fucCheckNUM(NUM)
{
var i,j,strTemp;
strTemp=”0123456789″;
if ( NUM.length== 0)
return 0
for (i=0;iNUM.length;i++)
{
j=strTemp.indexOf(NUM.charAt(i));
if (j==-1)
{
//说明有字符不是数字
return 0;
}
}
//说明是数字
return 1;
}
6. 电话号码格式验证
—————————————
//函数名:fucCheckTEL
//功能介绍:检查是否为电话号码
//参数说明:要检查的字符串
//返回值:1为是合法,0为不合法
function fucCheckTEL(TEL)
{
var i,j,strTemp;
strTemp=”0123456789-()# “;
for (i=0;iTEL.length;i++)
{
j=strTemp.indexOf(TEL.charAt(i));
if (j==-1)
{
//说明有字符不合法
return 0;
}
}
//说明合法
return 1;
}
7. 判断输入是否为中文的函数
—————————————
function ischinese(s){
var ret=true;
for(var i=0;is.length;i++)
ret=ret (s.charCodeAt(i)=10000);
return ret;
}
8. 综合的判断用户输入的合法性的函数
—————————————
script language=”javascript”
//限制输入字符的位数开始
//m是用户输入,n是要限制的位数
function issmall(m,n)
{
if ((mn) (m0))
{
return(false);
}
else
{return(true);}
}
9. 判断密码是否输入一致
—————————————
function issame(str1,str2)
{
if (str1==str2)
{return(true);}
else
{return(false);}
}
10. 判断用户名是否为数字字母下滑线
—————————————
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
if (reg.test(str)){
return (false);
}else{
return(true); }
}
2.8. form文本域的通用校验函数
—————————————
作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。
使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
html如下input name=”txt_1″ title=”姓名”,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
如果要检测数字类型数据的话,再把域的id统一为sz.
javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。
程序比较草,只是提供一个思路。抛砖引玉! :)
哦,对了,函数调用方法:
form onsubmit=”return dovalidate()”
function dovalidate()
{
fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件
for(i=0;ifm.length;i++)
{
//检测判断条件,根据类型不同可以修改
if(fm[i].tagName.toUpperCase()==”INPUT” fm[i].type.toUpperCase()==”TEXT” (fm[i].title!=”"))
if(fm[i].value=”/blog/=”")//
{
str_warn1=fm[i].title+”不能为空!”;
alert(str_warn1);
fm[i].focus();
return false;
}
if(fm[i].id.toUpperCase()==”SZ”)//数字校验
{
if(isNaN(fm[i].value))
{ str_warn2=fm[i].title+”格式不对”;
alert(str_warn2);
fm[i].focus();
return false;
}
}
}
return true;
}
如何测试js代码
可以直接用谷歌浏览器测试。
谷歌浏览器开发者工具比较全面,可以打断点,可以查看调用栈,同时可以查看html和css的变化情况,所以一般情况使用谷歌浏览器测试js就可以了。
其他的开发工具,虽然也有js调试,但是可能不能跟踪html,css等的变化。
求一段js 判断设备跳转网页的代码
一般来说,你这个需求不难办到。思路无非两条,检测UA以及特性检测。
这两种方法可以说各有利弊。
UA检测来说,比较简单、准确、适用面广并且易扩充。
navigator.userAgent.match(/Android/i) // 判断是否是Android设备
navigator.userAgent.match(/iPhone|iPad|iPod/i) // 判断是否为iOS设备
通过以上的操作就可以很方便的检测用户使用的是什么设备。并且一次类推,几乎可以判断所有的浏览器。
不过UA检测的缺陷也是非常明显的,就是无法判断伪装的浏览器。大部分浏览器都会修改自己的UA,以适配更多的网站,甚至很多移动端的浏览器还支持自定义UA。所以使用UA检测准确,但不一定正确。
另外就是特性检测,特性检测顾名思义,是通过用户浏览器拥有的特性来检测,例如说判断浏览器是否支持某些内置方法来进行判断,或者通过浏览器的怪癖(例如说有些低版本的IE会在解析某些设置时显得跟别人颇为不同)来进行判断。
他的优势是可以真正的检测到浏览器的类型,识破伪装。
不过劣势是非常明显的,就是比较繁琐,并且很麻烦,浏览器版本升级后可能就失效了。
所以建议你使用UA检测或者jQuery Migrate之类的插件。
高分!!求js代码。可以验证一串字符串中里面的引号,括号。尖括号左右匹配的?
用正则表达式比较简单、
还可以用String类的方法判断、
如:
String str ="!@~#$%^*()_+";//将特殊字符保存到str里面
String strchar = str.substring(int temp1,int temp2);//用这方法取得字符
strchar.equals("*")//用这方法判断取出来的字符和你所要比较的字符