使用 JavaScript 正则表达式查找非数字字符


在本教程中,我们将学习如何使用 JavaScript 正则表达式查找非数字字符。ASCII 码 'A' 是 65,'a' 是 97 等。现在,我们将检查如何使用 RegExp 在给定文本中查找非数字元素 (\D)。

RegExp 是一个对象,它指定用于对字符串执行搜索和替换操作或进行输入验证的模式。RegExp 在 ES1 中引入,并被所有浏览器完全支持。

语法

非数字元素的语法为:

new RegExp("\D") or simply /\D/

/\D/,在 ES1 中引入。它被所有浏览器完全支持。例如,Chrome、IE、Safari、Opera、FireFox 和 Edge。

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

带有修饰符的 \D 语法,例如:

new RegExp("\D", "g") or simply /\D/g

查找非数字字符的步骤

步骤 1 - 定义一个包含一些非数字字符的字符串。

步骤 2 - 定义一个正则表达式以仅查找数字。

步骤 3 - 执行字符串和正则表达式之间的匹配。

步骤 4 - 显示结果,即非数字字符。

示例

在下面的示例中,我们使用 JavaScript 中的 match() 方法和正则表达式查找非数字字符。

<!DOCTYPE html>
<html>
<body>
   <h2>Finding non-digit characters</h2>
   <p>Non-digits characters:
      <p id = "result"></p>
   </p>
   <script>
      let text = "200 students qualified in the exam out of 250";
      let pattern = /\D/g;
      let result = text.match(pattern);
      document.getElementById("result").innerHTML=result;
   </script>
</body>
</html>

这里,如果给定文本中存在非数字字符,则 match() 方法将返回非数字字符数组,否则将返回 null。根据 match() 方法的输出,我们可以执行操作。例如:

示例

在下面的示例中,我们定义了一个没有任何非数字字符的字符串,并尝试在字符串中查找非数字字符。

<!DOCTYPE html>
<html>
<body>
   <h1>Finding non-digit element</h1>
   <p id = "result"></p>
   <script>
      let text = "200250";
      let pattern = /\D/g;
      let result = text.match(pattern);
      if(result == null){
         document.getElementById("result").innerHTML= "Sorry, No non-digits are found in the text";
      }else{
         document.getElementById("result").innerHTML= "Non-digit characters are: " + result;
      }
   </script>
</body>
</html>

例如,在输入文本中没有非数字字符。因此,如果执行该语句。如果输入文本包含非数字字符,则将执行另一部分。

示例

现在,我们将检查如何替换非数字字符。让我们看一个例子

<!DOCTYPE html>
<html>
<body>
   <h1>Replace non-digit character(s)</h1>
   <p>After replacing non-digit character(s):
      <p id = "result"></p>
   </p>
   <script>
      let text = "200 students qualified in the exam out of 250";
      let pattern = /\D/g;
      let result = text.split(/\D/g).join(" ");
      document.getElementById("result").innerHTML=result;
   </script>
</body>
</html>

示例

我们还将检查另一种替换非数字字符的方法。让我们看一个例子

<!DOCTYPE html>
<html>
<body>
   <h1>Replace non-digit character(s)</h1>
   <p>After replacing non-digit character(s):
      <p id = "result"></p>
   </p>
   <script>
      let text = "200 students qualified in the exam out of 250";
      let pattern = /\D/g;
      let result = text.replace(/\D/g , " ");
      document.getElementById("result").innerHTML=result;
   </script>
</body>
</html>

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

希望本文能帮助您了解如何在 JavaScript 中使用 RegExp 查找非数字字符。

更新于: 2022-12-08

2K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告