![使用JavaScript RegExp查找数字](https://img.php.cn/upload/article/000/887/227/169382527630880.jpg)
在本教學中,我們將了解如何使用 JavaScript RegExp 來尋找數字 (0-9)。數字 [0-9] 的 ASCII 值從 48 到 57 開始。如果要列印某個數字的任何 ASCII 值,則需要在該數字上新增 48。
我們在正規表示式中將數字表示為 \d。 RegExp 是一個對象,它指定用於對字串執行搜尋和取代操作或輸入驗證的模式。
文法
以下是數字或 \d 字元的正規表示式模式的語法 -
1 | new RegExp( "\d" ) or simply /\d/
|
登入後複製
/\d/ 是在 ES1 中引入的。所有瀏覽器都完全支援它。例如Chrome、IE、
Safari、Opera、Firefox 和 Edge。
RegExp 具有諸如 g、i、m 之類的修飾符。 “g”用於執行全域匹配,“i”用於執行不區分大小寫的匹配,“m”用於執行多行匹配。
語法
The syntax for \d with a modifier like,
1 | new RegExp( "\d" , "g" ) or simply /\d/g
|
登入後複製
演算法
- 第 1 步 - 定義一個包含一些數字的字串。
- 第 2 步 - 定義數字的 RegExp 模式。
- 第 3 步 - 對上面定義的字串套用 match(pattern) 以尋找字串中的數字。
- 第 4 步 - 顯示結果 - 數字。
讓我們看一些程式範例,以便更清楚地理解。
範例 1
在下面的程式中,我們使用字串匹配(模式)來尋找給定字串中的數字(\d)。我們使用 RegExp 模式作為 /\d/g。 string match() 方法傳回字串中的數字數組。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!DOCTYPE html>
<html>
<body>
<h2>RegExp digit finding</h2>
<p id= "text" > </p>
<p>Digit(s):
<span id = "result" ></span>
</p>
<script>
let text = "200 students are passed out 250 in the class." ;
document.getElementById( "text" ).innerHTML = text;
let pattern = /\d/g;
let result = text.match(pattern);
document.getElementById( "result" ).innerHTML = result;
</script>
</body>
</html>
|
登入後複製
這裡,如果給定文字中存在數字,則 match() 方法將傳回數字數組,否則將傳回 null。讓我們來看另一個例子。
範例 2
在下面的程式中,我們取得一個沒有數字的字串,並嘗試在該字串中尋找數字。我們使用字串匹配(模式)來查找給定字串中的數字(\d)。我們使用 RegExp 模式作為 /\d/g。看看我們的輸出是什麼樣的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!DOCTYPE html>
<html>
<body>
<h2>Finding digits using RegExp</h2>
<p id = "result" ></p>
<script>
let text = "All students are qualified for the test" ;
let pattern = /\d/g;
let result = text.match(pattern);
if (result == null){
document.getElementById( "result" ).innerHTML = "No digits found in the text." ;
} else {
document.getElementById( "result" ).innerHTML = result;
}
</script>
</body>
</html>
|
登入後複製
範例 3
在下面的程式中,我們搜尋 2 到 7 之間的數字。為此,我們使用 /[2-7]/g 作為正規表示式模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!DOCTYPE html>
<html>
<body>
<h2>RegExp digit finding</h2>
<p id = "text" ></p>
<p>Digit(s):
<span id = "result" ></span>
</p>
<script>
let myStr = "200 students are passed out 250 in the class." ;
document.getElementById( "text" ).innerHTML = myStr;
let pattern = /[2-7]/g;
let result = myStr.match(pattern);
document.getElementById( "result" ).innerHTML = result;
</script>
</body>
</html>
|
登入後複製
我們可以使用一些方法來替換數字字元。讓我們看下面的例子
範例 4
尋找並取代數字
在下面的範例中,我們會尋找數字並將其替換為空格字元。為此,我們使用 split() 和 join() 方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!DOCTYPE html>
<html>
<body>
<h2>Replace digit character(s)</h2>
<p id = "text" ></p>
<p>After replacing the digit character(s):
<span id = "result" ></span>
</p>
<script>
let myStr = "200 students are passed out 250 in the class." ;
document.getElementById( "text" ).innerHTML = myStr;
let pattern = /\d/g;
let result = myStr.split(/\d/g).join( " " )
document.getElementById( "result" ).innerHTML = result;
</script>
</body>
</html>
|
登入後複製
範例 5
我們也會檢查以更簡單的方式替換數字字元。就像,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!DOCTYPE html>
<html>
<body>
<h2>Replace digit character</h2>
<p id = "text" ></p>
<p>After replacing the digit character(s):
<span id = "result" ></span>
</p>
<script>
let myStr = "200 students are passed out 250 in the class." ;
document.getElementById( "text" ).innerHTML = myStr;
let pattern = /\d/g;
let result = myStr.replace(/\d/g , " " )
document.getElementById( "result" ).innerHTML = result;
</script>
</body>
</html>
|
登入後複製
正如我們所討論的,g 代表全域匹配。它不會在第一次出現時停止,而是尋找所有出現的情況。
在這裡,我們可以在文本中觀察到沒有數字。因此,match() 將傳回 null。希望本教程能夠澄清如何在給定文本中找到數字。
以上是使用JavaScript RegExp找出數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!