JavaScript 正则表达式 - 如何替换特殊字符?


既不是字母也不是数字的字符称为特殊字符。特殊字符基本上是所有不可读的字符,包括标点符号、重音符号和符号标记。

移除字符串中的所有特殊字符,使其更易于阅读和理解。在进入文章之前,让我们快速了解一下JavaScript 中的正则表达式

JavaScript 中的正则表达式

正则表达式是可以用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式是对象。这些模式可以与 RegExp 的exec()test()方法以及 String 的match()matchAll()replace()replaceAll()search()split()方法一起使用。

语法

以下是正则表达式的语法:

/pattern/modifier(s);

让我们深入了解这篇文章,以便更好地理解如何替换特殊字符。为此,我们将使用replace()方法。

使用 replace() 方法替换特殊字符

JavaScript 内置方法string.replace()可用于将提供的字符串的一部分替换为另一个字符串或正则表达式。原始字符串不会改变。

语法

以下是replace()的语法:

string.replace(searchValue, newValue)

要了解更多关于替换特殊字符的信息,让我们来看下面的例子。

示例 1

在下面的示例中,我们正在运行脚本以使用replace()替换所有特殊字符。

<!DOCTYPE html>
<html>
   <body style="background-color:#ABEBC6">
      <script>
         var statement = "We#@lcome!! To! The@ Tutorials$Point%";
         var result = statement.replace(/[^a-zA-Z ]/g, "");
      document.write(result);
      </script>
   </body>
</html>

当脚本执行时,它将生成一个输出,其中包含已替换为脚本中使用的特殊字符的文本。

示例 2

考虑下面的示例,我们在其中运行脚本以使用replace()替换特殊字符。

<!DOCTYPE html>
<html>
   <body>
      <p id="tutorial"></p>
      <button onclick="replacespecial()">Click To Change</button>
      <p id="tutorial1"></p>
      <script>
         var element_up = document.getElementById("tutorial");
         var element_down = document.getElementById("tutorial1");
         var statement = "Th@e B$es^t E-w#ay Le*arn(ing";
         element_up.innerHTML = statement;
         function replacespecial() {
            element_down.innerHTML =
            statement.replace(/[&\/\#, +()$~%.'":@^*?<>{}]/g, '!');
         }
      </script>
   </body>
</html>

运行上述脚本后,将弹出输出,显示原始语句以及一个点击按钮。当用户点击按钮时,事件被触发,所有特殊字符都被替换为“!”,并显示在网页上。

示例 3

执行以下脚本,并观察如何使用replace()方法替换所有特殊字符。

<!DOCTYPE html>
<html>
   <body>
      <script>
         let statement = "T!P, Wher$%e Y@ou F*ind L@ot O!f Courses"
         function replacespecial(_value){
            var lowerCase = _value.toLowerCase();
            var upperCase = _value.toUpperCase();
            var replacement = "";
            for(var i=0; i<lowerCase.length; ++i) {
               if(lowerCase[i] != upperCase[i] || lowerCase[i].trim() === '' || lowerCase[i].trim() === "." ||
               lowerCase[i].trim() === ",")
               replacement += _value[i];
            }
            return replacement;
         }
         let result = replacespecial(statement)
         document.write(result)
      </script>
   </body>
</html>

执行脚本后,事件被触发,从特殊字符替换的文本将显示在网页上。

更新于:2024年6月21日

11K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告