js过滤特殊字符
2014-10-31 15:02
411 查看
转自:http://blog.csdn.net/you23hai45/article/details/21120119
JavaScript过滤特殊字符
1、设计实例
[html] view
plaincopy
<!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/html; charset=utf-8" />
<title>JavaScript过滤特殊字符</title>
<style type="text/css">
body{
width:80%;
background-color:#FFC;
height:100px;
font-size:14px;
font-family:"Times New Roman", Times, serif;
font-stretch:expanded;
font-style:inherit;
font-variant:inherit;
font-weight:bold;
}
#div1{
text-align:center;
width:100%;
height:100%;
line-height:inherit;
}
#btn{
font:Georgia, "Times New Roman", Times, serif;
font-size-adjust:inherit;
font-weight:bold;
background-color:#C96;
alignment-adjust:after-edge;
alignment-baseline:baseline;
word-break:break-all;
width:120px;
height:30px;
font-size:16px;
animation:ease;
}
</style>
<script type="text/javascript">
/**
* 过滤字符串函数
**/
function filterStr(str)
{
var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]");
var specialStr = "";
for(var i=0;i<str.length;i++)
{
specialStr += str.substr(i, 1).replace(pattern, '');
}
return specialStr;
}
/**
* 检测过滤字符串函数
**/
function checkStr()
{
var str = document.getElementById("pContent").innerHTML;
alert("过滤之前的字符串:" + str);
str = filterStr(str);
alert("过滤之后的字符串:" + str);
}
</script>
</head>
<body>
<div id="div1">
<p id="pContent">张三huhnjhj$%$^%^%&^*&<>?{}{{[]()_+|@~`$378748hyfgtyt35451fdhjdsh&%^^&$#%%&^^*&(*%$%$f4857485</p>
<input type="button" id="btn" name="btn" value="过滤" onclick="checkStr()"/>
</div>
</body>
</html>
2、设计结果
(1)初始化时
(2)单击“过滤”按钮
(3)单击“确定”按钮后
3、说明
JavaScript利用正则表达式过滤特殊字符,关键之处是正则表达式的正确性和完整性,保证常见特殊字符都可以过滤掉。
但是,这个正则表达式有一个弊端,不能过滤掉“\”特殊字符。
自定义:
在chrome浏览器中可以进行js正则表达式的简单测试:
JavaScript过滤特殊字符
1、设计实例
[html] view
plaincopy
<!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/html; charset=utf-8" />
<title>JavaScript过滤特殊字符</title>
<style type="text/css">
body{
width:80%;
background-color:#FFC;
height:100px;
font-size:14px;
font-family:"Times New Roman", Times, serif;
font-stretch:expanded;
font-style:inherit;
font-variant:inherit;
font-weight:bold;
}
#div1{
text-align:center;
width:100%;
height:100%;
line-height:inherit;
}
#btn{
font:Georgia, "Times New Roman", Times, serif;
font-size-adjust:inherit;
font-weight:bold;
background-color:#C96;
alignment-adjust:after-edge;
alignment-baseline:baseline;
word-break:break-all;
width:120px;
height:30px;
font-size:16px;
animation:ease;
}
</style>
<script type="text/javascript">
/**
* 过滤字符串函数
**/
function filterStr(str)
{
var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]");
var specialStr = "";
for(var i=0;i<str.length;i++)
{
specialStr += str.substr(i, 1).replace(pattern, '');
}
return specialStr;
}
/**
* 检测过滤字符串函数
**/
function checkStr()
{
var str = document.getElementById("pContent").innerHTML;
alert("过滤之前的字符串:" + str);
str = filterStr(str);
alert("过滤之后的字符串:" + str);
}
</script>
</head>
<body>
<div id="div1">
<p id="pContent">张三huhnjhj$%$^%^%&^*&<>?{}{{[]()_+|@~`$378748hyfgtyt35451fdhjdsh&%^^&$#%%&^^*&(*%$%$f4857485</p>
<input type="button" id="btn" name="btn" value="过滤" onclick="checkStr()"/>
</div>
</body>
</html>
2、设计结果
(1)初始化时
(2)单击“过滤”按钮
(3)单击“确定”按钮后
3、说明
JavaScript利用正则表达式过滤特殊字符,关键之处是正则表达式的正确性和完整性,保证常见特殊字符都可以过滤掉。
但是,这个正则表达式有一个弊端,不能过滤掉“\”特殊字符。
自定义:
在chrome浏览器中可以进行js正则表达式的简单测试:
匹配数字: (/^([0-9]+)$/.test("123")) 匹配非数字: (/^([^\d]+)$/.test("123")) 非数字非*号 (/^([^\d\*]+)$/.test("123abc*")) false (/^([^\d\*]+)$/.test("abc*")) false (/^([^\d\*]+)$/.test("abc")) true 不能是以下特殊符号: [`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_] (/^([^\~\!\@\#\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\.\/]+)$/.test("abc")) (/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\.\<\>\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+\_]+)$/.test("abc")) true s1 = "abc\"test\"" "abc"test"" s1 "abc"test"" (/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\.\<\>\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+\_]+)$/.test(s1)) false 上述特殊符号中允许使用\.\_\- (/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\<\>\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+]+)$/.test(s1))
相关文章推荐
- js中过滤特殊字符的正则表达式
- js过滤特殊字符
- js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
- JS过滤url参数中的特殊字符
- js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号
- js 正则(过滤特殊字符`~!@#$^&*()=|{}':;',)
- 一个过滤特殊字符的JS!
- 一个过滤特殊字符的JS
- 防止javascript 注入攻击 js过滤特殊字符
- js中用正则表达式 过滤特殊字符 ,校验所有输入域是否含有特殊符号
- js过滤特殊字符输入(可过滤输入,粘贴,拖拽多种情况)
- JS特殊字符过滤,防止xss和sql注入。
- js特殊字符过滤的示例代码
- js过滤特殊字符
- js中用正则表达式 过滤特殊字符, js验证中文字母数字
- 一个过滤特殊字符的JS
- 一个过滤特殊字符的JS .
- js特殊字符过滤的示例代码--转自上学吧lhwanglei
- js中用正则表达式 过滤特殊字符 ,校验所有输入域是否含有特殊符号
- js中过滤php特殊字符