📅  最后修改于: 2023-12-03 15:02:24.598000             🧑  作者: Mango
在开发中,我们经常需要检查用户输入或者获取的字符串是否包含一些特殊字符,例如HTML标签、JavaScript脚本、SQL注入等,以避免安全风险。
本文将介绍如何使用JavaScript编写一个函数来检查是否包含特殊字符。
function checkStr(str) {
// 匹配正则表达式,判断是否包含特殊字符
let patt = new RegExp("[`~!@#$%^&*()_=+\\[\\]{}\\\\|;:'\",.<>/?!¥…()—【】{}‘;:”“。,、?]", "g");
return patt.test(str);
}
// 使用方式
if (checkStr("hello*")) {
console.log("包含特殊字符");
} else {
console.log("不包含特殊字符");
}
function checkStr(str) {
let list = ["`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "]", "{", "}", "\\", "|", ";", ":", "'", "\"", ",", ".", "<", ">", "/", "?", "!", "¥", "…", "(", ")", "—", "【", "】", "{", "}", "‘", ";", ":", "”", "“", "。", ",", "、", "?"];
for (let i = 0; i < str.length; i++) {
if (list.includes(str.charAt(i))) {
return true;
}
}
return false;
}
// 使用方式
if (checkStr("hello*")) {
console.log("包含特殊字符");
} else {
console.log("不包含特殊字符");
}
以上两种方式的主要区别在于使用的方法不同。方式一使用正则表达式匹配特殊字符,而方式二则是通过遍历字符串判断字符是否在特殊字符列表中。
其中,“\”需要使用两个反斜杆转义,否则会报错。[]
中的字符不需要转义。
在使用时,只需要调用checkStr
函数并传入待检查的字符串即可。如果函数返回true,则说明字符串包含特殊字符。
通过上述代码的介绍,我们可以知道如何在JavaScript中检查字符串是否包含特殊字符。但是,这两种方法都只能检查单个字符是否符合条件,无法检测连续的特殊字符。因此,在实际开发中,我们应该根据情况对检查函数进行优化和改进,以提高代码的效率和安全性。