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+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.