使用 JavaScript 正則表示式查詢字串中的非單詞字元
在本教程中,我們將學習如何使用 JavaScript 正則表示式在字串中查詢非單詞字元。實際上,**單詞字元**包括**A-Z、a-z、0-9** 和 _。而**非單詞字元**則指除了單詞字元以外的字元,例如 !、@、#、$、%、^、&、*、(、)、{、} 等。我們將非單詞字元表示為 \W。我們都知道 JavaScript 中的 RegExp(正則表示式)。RegExp 是一個物件,它指定用於對字串執行搜尋和替換操作或進行輸入驗證的模式。RegExp 在 ES1 中引入,並得到所有瀏覽器的完全支援。
非單詞字元的 ASCII 碼為:
! - 33, @ - 64, #- 35, $ - 36, % - 37, ^ - 94, & - 38, * - 42, + - 43, - - 45, ( - 40, ) - 41.
現在,我們將檢查如何使用 RegExp 查詢非單詞字元。
語法
非單詞字元或 \W 字元的語法為:
new RegExp("\W") or simply /\W/
/\W/,在 ES1 中引入。它完全受所有瀏覽器支援,例如 Chrome、IE、Safari、Opera、FireFox 和 Edge。
RegExp 具有修飾符,例如 g、i、m。“g”用於執行全域性匹配,“i”用於執行不區分大小寫的匹配,“m”用於執行多行匹配。
帶有修飾符的 \W 語法,例如:
new RegExp("\W", "g") or simply /\W/g
在字串中查詢非單詞字元的步驟
**步驟 1** - 宣告並定義一個包含一些非單詞字元的字串。
**步驟 2** - 定義正則表示式模式。
**步驟 3** - 透過將字串與正則表示式模式匹配來查詢非單詞字元。
**步驟 4** - 顯示結果。
示例
在下面的示例中,我們使用 RegExp 和 match() 方法在字串中查詢非單詞字元。
<!DOCTYPE html>
<html>
<body>
<h1>Finding non-word character</h1>
<p>Non-word characters :
<p id="result"></p>
</p>
<script>
let text = "_HiWelcome@2022%!$%&*@!{[()]}";
let pattern = /\W/g;
let result = text.match(pattern);
document.getElementById("result").innerHTML = result;
</script>
</body>
</html>
示例
在這裡,如果給定文字中存在非單詞字元,match() 方法將返回一個包含現有非單詞字元的陣列。如果沒有,則返回 null。讓我們看另一個例子。
<!DOCTYPE html>
<html>
<body>
<h1>Finding non-word character</h1>
<p id="result"></p>
<script>
let text = "_HiWelcome2022";
let pattern = /\W/g;
let result = text.match(pattern);
if(result == null){
document.getElementById("result").innerHTML = "Sorry, No non-word present in the text";
}else{
document.getElementById("result").innerHTML = "Non-word character(s):" +result;
}
</script>
</body>
</html>
這裡,文字中沒有非單詞字元。match() 方法返回 null。因此,如果語句被執行。如果文字包含如第一個示例所示的非單詞字元,則 match() 方法將返回一個包含現有非單詞字元的陣列。因此,else 語句將執行。
示例
現在,我們將檢查如何在給定文字中替換單詞字元。讓我們看一個例子
<!DOCTYPE html>
<html>
<body>
<h1>Replace non-word character(s)</h1>
<p>After replacing non-word character(s) :
<p id="result"></p>
</p>
<script>
let text = "_HiWelcome@2022%!$%&*@!{[()]}";
let pattern = /\W/g;
let result = text.split(pattern).join(" ");
document.getElementById("result").innerHTML = result;
</script>
</body>
</html>
示例
我們還將檢查另一種替換非單詞字元的方法。讓我們看一個例子
<!DOCTYPE html>
<html>
<body>
<h1>Replace non-word character(s)</h1>
<p>After replacing non-word character(s) :
<p id="result"></p>
</p>
<script>
let text = "_HiWelcome@2022%!$%&*@!{[()]}";
let pattern = /\W/g;
let result = text.replace(pattern , " ");
document.getElementById("result").innerHTML = result;
</script>
</body>
</html>
正如我們所討論的,g 用於全域性匹配。它不會在第一次出現時停止,而是會查詢所有出現。
我希望本教程能幫助您瞭解如何在 JavaScript 中使用 RegExp 查詢非單詞字元。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP