在 JavaScript 正则表达式中查找括号之间的数字?


在本教程中,我们将学习如何使用 JavaScript 正则表达式查找括号中的数字。数字 (0-9) 的 **ASCII** 值从 48 到 57。我们在正则表达式中将括号中的数字表示为 [0-9]。要查找特定范围内的数字(排除所有其他数字),我们可以编写该特定范围。例如,要查找 4 到 8 之间的数字,我们可以在正则表达式模式中将其写为 [4-8]。现在,我们的目标是使用 JavaScript 中的 RegExp 查找文本中括号内的数字。我们可以遵循以下语法来查找括号之间的数字。

语法

以下是 RegExp 组 [0-9] 字符的语法:

new RegExp("[0-9]") or simply /[0-9]/ 

**/[0-9]/**,在 ES1 中引入。所有浏览器都完全支持它,例如 Chrome、IE、Safari、Opera、FireFox 和 Edge。

RegExp 具有修饰符,例如 **g、i、m。“g”** 用于执行全局匹配,“**i”** 用于执行不区分大小写的匹配,“**m”** 用于执行多行匹配。

带有修饰符的 /[0-9]/ 的语法,例如:

new RegExp("[0-9]", "g") or simply /[0-9]/g

算法

  • **步骤 1** - 定义一个包含一些数字的字符串。
  • **步骤 2** - 定义括号之间数字的 RegExp 模式。
  • **步骤 3** - 在上述定义的字符串上应用 match(pattern) 来查找字符串中括号之间的数字。
  • **步骤 4** - 显示结果 - 匹配的数字。

让我们来看一些程序示例,以便更好地理解。

示例 1

在下面的程序中,我们使用字符串 match(pattern) 来查找给定字符串中 1 到 4 之间的数字。我们使用 RegExp 模式 /[1-4]/g。字符串 match() 方法返回字符串中数字的数组。

<!DOCTYPE html> <html> <body> <h2>Finding digits inside the bracket</h2> <p id = "text"></p> <p>Digits inside the bracket [1-4] : <span id= "result"></span> </p> <script> let myStr = "0127845639Hello"; document.getElementById("text").innerHTML = myStr; let pattern = /[1-4]/g; let result = myStr.match(pattern); document.getElementById("result").innerHTML = result; </script> </body> </html>

这里,文本给出的是 0-9 数字和 Hello 单词。在模式中,我们只给出了 [1-4]。match() 方法只会搜索 1 到 4 的数字。如果在文本中找到指定的数字,match() 方法将返回现有数字的数组,否则将返回 null。让我们看另一个例子。

示例 2

在下面的程序中,我们使用一个没有数字的字符串,并尝试在字符串中查找数字。我们使用字符串 match(pattern) 来查找给定字符串中 1 到 4 之间的数字。我们使用 RegExp 模式 /[1-4]/g。看看我们的输出是什么样的。

<!DOCTYPE html> <html> <body> <h1>Finding digits inside the bracket</h1> <p id= "result"></p> <script> let text = "567890"; let pattern = /[1-4]/g; let result = text.match(pattern); if(result == null){ document.getElementById("result").innerHTML = "Sorry, there is no digits in text that mentioned in the brackets"; } else { ocument.getElementById("result").innerHTML = result; } </script> </body> </html>

在这里,我们可以观察到我们在模式中提到了 [1-4],但在文本中我们给出了 5-9 和 0。match() 方法将返回 null,因为没有找到。因此,如果语句被执行。如果输入文本与第一个示例相同,则 match() 将返回现有数字的数组,然后将执行另一个语句。例如,

示例 3

<!DOCTYPE html> <html> <body> <h1>Finding digits inside the bracket</h1> <p id= "result"></p> <script> let text = "0127845639Hello"; let pattern = /[1-4]/g; let result = text.match(pattern); if(result == null){ document.getElementById("result").innerHTML = "Sorry, there is no digits in text that mentioned in the brackets"; } else { document.getElementById("result").innerHTML = "Digit(s) inside the inside the bracket: " + result; } </script> </body> </html>

现在,我们将检查如何在给定文本中替换单词字符。让我们看一个例子

示例 4

查找和替换括号之间的数字

在下面的示例中,我们查找并用空格字符替换 1 到 4 之间的数字。为此,我们使用 split() 和 join() 方法。

<!DOCTYPE html> <html> <body> <h1>Replace digits inside the bracket</h1> <p>After replacing the digits inside the bracket : <span id= "result"></span> </p> <script> let text = "0127845639Hello"; let pattern = /[1-4]/g; let result = text.split(pattern).join(" "); document.getElementById("result").innerHTML = result; </script> </body> </html>

示例 5

我们还将检查使用更简单的方法来替换括号内的数字。例如,

<!DOCTYPE html> <html> <body> <h1>Replace digits inside the bracket</h1> <p>After replacing the digits inside the bracket : <span id= "result"></span> </p> <script> let text = "0127845639Hello"; let pattern = /[1-4]/g; let result = text.replace(pattern , " "); document.getElementById("result").innerHTML = result; </script> </body> </html>

正如我们所讨论的,g 用于全局匹配。它不会在第一次出现时停止,而是会查找所有出现的情况。

希望本教程能帮助您了解如何在 JavaScript 中使用 RegExp 查找括号内的数字。

更新于:2022年8月26日

646 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.