检查 String 是否包含 JavaScript 中的特殊字符

检查 String 是否包含 JavaScript 中的特殊字符

Check if String contains Special Characters in JavaScript

要检查字符串是否包含特殊字符,请test()在匹配任何特殊字符的正则表达式上调用该方法。

如果字符串至少包含 1 个特殊字符,则test()方法将返回,否则返回。truefalse

索引.js
function containsSpecialChars(str) { const specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/; return specialChars.test(str); } console.log(containsSpecialChars('hello!')); // 👉️ true console.log(containsSpecialChars('abc')); // 👉️ false console.log(containsSpecialChars('one two')); // 👉️ false if (containsSpecialChars('hello!')) { // 👇️ this runs console.log('✅ string contains special characters'); } else { console.log('⛔️ string does NOT contain special characters'); }
如果您认为spaces是特殊字符,请在方括号之间添加一个空格[]
索引.js
// 👇️ with space as a special character // 👇️ const specialChars = /[ `!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/;

我们使用
RegExp.test
方法来检查字符串是否包含特殊字符。

true如果正则表达式在字符串中匹配,则该方法返回,false否则返回。

正斜杠标记/ /正则表达式的开始和结束。

方括号[]称为字符类,匹配方括号之间的任何字符。

如果您不认为方括号之间的任何字符是特殊字符,请将其删除。

或者,您可以使用该Array.some()方法。

检查字符串是否包含特殊字符使用Array.some()

这是一个四步过程:

  1. 定义一个包含所有特殊字符的字符串。
  2. 使用该String.spit()方法在每个字符上拆分字符串。
  3. 使用该Array.some()方法迭代特殊字符数组。
  4. 检查提供的字符串中是否包含每个特殊字符。
索引.js
function containsSpecialChars(str) { const specialChars = `\`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~`; const result = specialChars.split('').some(specialChar => { if (str.includes(specialChar)) { return true; } return false; }); return result; } console.log(containsSpecialChars('hello!')); // 👉️ true console.log(containsSpecialChars('abc')); // 👉️ false console.log(containsSpecialChars('one two')); // 👉️ false if (containsSpecialChars('hello!')) { // 👇️ this runs console.log('✅ string contains special characters'); } else { console.log('⛔️ string does NOT contain special characters'); }

我们定义了一个包含所有特殊字符的字符串。您可以根据需要调整字符串。

然后我们使用该String.split()方法将字符串拆分为一个特殊字符数组。

索引.js
// [ // '`', '!', '@', '#', '$', '%', // '^', '&', '*', '(', ')', '_', // '+', '-', '=', '[', ']', '{', // '}', ';', "'", ':', '"', '\\', // '|', ',', '.', '<', '>', '/', // '?', '~' // ] console.log(specialChars.split(''));

我们使用Array.some()
方法迭代特殊字符数组。

我们传递给方法的函数some()被调用每个元素(特殊字符),直到它返回一个真值或遍历整个数组。

在每次迭代中,我们检查当前特殊字符是否包含在提供的字符串中。

如果字符串包含至少 1 个特殊字符,则该some()方法返回true并短路。

如果字符串不包含任何特殊字符,该some()方法将遍历整个数组并返回false

我个人的偏好是在这种情况下使用正则表达式。这两种方法都有点难以阅读,但是,正则表达式选项更直接一些。

# 额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: