js正則過濾特殊字元
① js 正則過濾特殊字元
您好
js檢查是否含有非法字元,js 正則過濾特殊字元
//正則
functiontrimTxt(txt){
returntxt.replace(/(^s*)|(s*$)/g,"");
}
/**
*檢查是否含有非法字元
*@paramtemp_str
*@returns{Boolean}
*/
functionis_forbid(temp_str){
temp_str=trimTxt(temp_str);
temp_str=temp_str.replace('*',"@");
temp_str=temp_str.replace('--',"@");
temp_str=temp_str.replace('/',"@");
temp_str=temp_str.replace('+',"@");
temp_str=temp_str.replace(''',"@");
temp_str=temp_str.replace('\',"@");
temp_str=temp_str.replace('$',"@");
temp_str=temp_str.replace('^',"@");
temp_str=temp_str.replace('.',"@");
temp_str=temp_str.replace(';',"@");
temp_str=temp_str.replace('<',"@");
temp_str=temp_str.replace('>',"@");
temp_str=temp_str.replace('"',"@");
temp_str=temp_str.replace('=',"@");
temp_str=temp_str.replace('{',"@");
temp_str=temp_str.replace('}',"@");
varforbid_str=newString('@,%,~,&');
varforbid_array=newArray();
forbid_array=forbid_str.split(',');
for(i=0;i<forbid_array.length;i++){
if(temp_str.search(newRegExp(forbid_array[i]))!=-1)
returnfalse;
}
returntrue;
}
---------------------
作者:dongsir 董先生
來源:董先生的博客
原文鏈接:js檢查是否含有非法字元
版權聲明:本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。轉載時請標註:http://dongsir.cn/p/195
② 在js中,使用正則表達式驗證特殊字元,怎麼不好使了
你沒有加字元串開始位置和字元串結束位置
所以只要有一個非特殊字元出現,就會匹配成功
對於"!@#a"就會匹配"a"
正確的寫法:
/^[\u4e00-\u9fa5\da-zA-Z\-\_]+$/
我覺得像這種驗證「不能出現某些字元」的正則,直接匹配那些不能出現的字元比較好。
③ 禁止使用特殊字元:% & * ^ ~ '" / \ < > | javascript正則表達式該怎麼寫
varreg=/^[^%*^~'"/\<>|]+$/g;
var str = "sdfsdf*sfsdf";
console.log(reg.test(str));
④ 在javascript中用正則表達式過濾指定的字元(一定要能指定!)
樓上的不加轉義字元\ 你們搞什麼啊
正確的應該是這樣的
加入你得到的字專符竄為屬 name
<html>
<head>
<script>
function test1(){
var name=document.getElementById('user').value;
name=name.replace(/(\!+)|(\<+)|(\>+)|(\'+)/g,"");
alert(name);
}
</script>
</head>
<body>
<input type="text" id="user" />
<input type="button" value="te" onclick="test1()">
</body>
</html>
⑤ 怎麼用Js正則表達式去除特殊字元
正則表達式只能去測試字元串適合符合,返回true,false。並不能改變你的字元串(也就是說去除功能)
⑥ js用正則表達式校驗特殊字元
請問你定義的特殊包括?
⑦ js中用正則表達式 過濾特殊字元 校驗所有輸入域是否含有特殊符號
樓上2位已經說的很明白了,只允許輸入規定的字元,如果輸入含有其他字元就直接提示,不允許輸入特殊字元,或者直接給它替換掉。
⑧ js如何用正則表達式做輸入框內特殊字元
郁悶死了.寫的時間太長了.
讓重新登陸了下.寫了半天的全沒了.
不寫了.
提醒你一下。
用ASCII碼判斷.
把輸入的字元串放數組裡面.循環一個一個的判斷.是不是在A到z的范圍內並且要在1到0的范圍呢.如果不在
直接彈出對話框.提示包含非法字元.
如果在的話.執行下一句
⑨ JS正則表達式中有哪些特殊字元,這些特殊字
這些符號有:^ $ . * + - ? = ! : | \ / ( ) [ ] { }
1.「[ ]」表示字元類: 即括弧里是個字元集:如/[abc]/,表示和含有a,b,c任何一個字母的字元串都匹配。
註:特殊字元類:
\s表示空格符、製表符、Unicode空白符。\S表示非空格空白符。 (也可自定義Unicode字元類:
如:/[\u4E00-\u9FA5]/表示只匹配中文字元。)
\w 任何單字字元,相當於[a-zA-X0-9_];\W與\w相反。
\d 任何數字,相當於[0-9];\D與 \d相反。
\b在字元類中使用表示退格符,[\b]則表示退格直接量;\b可以用來指定匹配位置,即匹配到達單詞邊界,稱為錨;
如:查找一個句子里的單詞 java , 可以使用/\bjava\b/;\B與\b相反。
2.「-"表示連字元,如[a-z];
3."."表示除換行符;表示匹配除「\r\n」之外的任意單個字元。若要匹配包括「\r\n」在內的任何字元,請使用像「[\w\W|\d\D|\s\S|]」的模式。
4."^"具有兩重含義:開始標記和非,如:/^a/表示以a開始的字元;當在[]中時:/[^a]/表示非a的所有字元。
5."$"表示字元結尾。如:/^abc$/表示以c結束的字元。
6.」{}"表示重復上一項。如/\d{2,4}/表示數字出現至少2次,最多4次。如/3{2,4}/匹配33...;333....;3333.....;不匹配3和4個3相連以上的了。它的三種格式如下{n,m}表示至少3次,最多m次;{n,}至少n次;{n}恰好n次。
7."?"表示{0,1}。
8."+"表示{1,}。
9."*"表示{0,}。
註:非貪婪的重復(如??,+?,*?,{1,5}?只匹配第一個。)
10."|"表示分割,即或的含義。如:/ab|cd|ef/匹配含有ab或cd或ef的字元串。
11."()"包含三重用途:一是定義子表達式。二是在完整的模式中定義子模式。三是子表達式的引用。
子模式的定義可以從目標串中抽取和括弧中的子模式相匹配的部分。
子模式的表達式的引用是指:可識別子模式的編號,提取它。如/(abc)\sis\s(string\w*)/;裡面含有兩個字表達式:可通過
\1指(abc);\2指(string\w*); 應用如:/['"][^'"]*['"]/不能取前後同樣的引號,可以這樣寫:/[('")[^'"]*\1]/,可起到約束作用。
註:若想()里的不想被記憶,可採用(?:.....),將不會對其編號。
還有(?=p),(?!p)如下:
如/(javascript)?(?=\:)/ 表示匹配javascript:,但不包含:;它不匹配javascript,因為他有個條件就是後要接:;
(?!p)反前向聲明,要求接下來的字元不與模式p匹配,與(?=p)相反。
⑩ js利用正則表達式提取字元串中的特殊字元串
這個直接用javascript的正則表達式取就可以了。
下面是簡單的代碼實現,僅供參考:
vara='asdfwlf!@#@##$%$%^SFDGD^%^%&&$#';
console.log(a.match(/[~!@#$%^&*-_]/g));
//這個結果是:["!","@","#","@","#","#","$","%","$","%","^","S","F","D","G","D","^","%","^","%","&","&","$","#"],出來的是一個數組。
可以通過join的方式編程一個字元串。
console.log(a.match(/[~!@#$%^&*-_]/g).join());
//結果是:!,@,#,@,#,#,$,%,$,%,^,S,F,D,G,D,^,%,^,%,&,&,$,#
如果不想要',',還可以再把','去掉。
console.log(a.match(/[~!@#$%^&*-_]/g).join(''));
//結果是:!@#@##$%$%^SFDGD^%^%&&$#