使用JavaScript正则表达式查找括号之外的数字?


在JavaScript中,正则表达式[^0-9]用于查找括号内的字符,但不是数字。除了括号中提到的数字外,它将把文本中剩余的字符作为数组返回。

我们都知道JavaScript中的RegExp(正则表达式)。RegExp是一个对象,它指定用于对字符串执行搜索和替换操作或进行输入验证的模式。RegExp在ES1中引入,并得到所有浏览器的完全支持。

语法

非数字字符或/[^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”用于执行多行匹配。

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

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

查找括号之间不是数字的数字的步骤

步骤1 - 定义包含数字的字符串。

步骤2 - 定义括号之间不是数字的数字的正则表达式模式。

步骤3 - 使用match()方法将字符串与正则表达式模式匹配。

步骤4 - 显示匹配的数字。

现在,让我们看看如何查找括号内的字符(除了数字)。

示例

在这个例子中,我们查找括号[0, 4]之外的数字。

<!DOCTYPE html>
<html>
<body>
   <h2>Digits not between the bracket</h2>
   <p>Digits not in the bracket [1, 4]:
      <p id = "result"></p>
   </p>
   <script>
      let text = "1234567890";
      let pattern = /[^1-4]/g;
      let result = text.match(pattern);
      document.getElementById("result").innerHTML = result;
   </script>
</body>
</html>

示例

在下面的例子中,我们查找括号[1, 4]之外的字符。

<!DOCTYPE html>
<html>
<body>
   <h2>RegExp [^1-4]</h2>
   <p>Characters not in the bracket [1-4]:
      <p id = "result"></p>
   </p>
   <script>
      let text = "1234567890_Hello@$%^&65434320867042ecsceQW";
      let pattern = /[^1-4]/g;
      let result = text.match(pattern);
      document.getElementById("result").innerHTML = result;
   </script>
</body>
</html>

在这里,我们可以观察到给定的文本是0-9和"_Hello@$%^&"。但在模式中,我们提到不要打印[1-4]范围内的数字。因此,match()方法将把剩余的字符作为数组返回,否则match()方法将返回null。让我们看看另一个例子

示例

<!DOCTYPE html>
<html>
<body>
   <h2>JavaScript Regular Expressions</h2>
   <p id = "result"></p>
   <script>
      let text = "123456789";
      let pattern = /[^1-9]/g;
      let result = text.match(pattern);
      if(result == null){
         document.getElementById("result").innerHTML = "No characters found";
      } else {
         document.getElementById("result").innerHTML = "Characters are " + result;
      }
   </script>
</body>
</html>

这里,文本是1-9,模式也不是1-9。因此,match()方法将找不到文本中除1-9之外的任何字符。因此,它将返回null。然后,如果执行该语句。如果我们提供如第一个示例所示的文本,则将执行else语句。

示例

<!DOCTYPE html>
<html>
<body>
   <h2>JavaScript Regular Expressions</h2>
   <p id = "result">Characters not between the bracket [1, 9]: <br><br> </p>
   <script>
      let text = "9876543210_Hello@$%^&";
      let pattern = /[^1-9]/g;
      let result = text.match(pattern);
      if(result == null){
         document.getElementById("result").innerHTML += "No characters found";
      } else {
         document.getElementById("result").innerHTML += "Characters are " + result;
      }
   </script>
</body>
</html>

现在,我们将检查如何替换给定文本中的单词字符。为此,我们将使用另一个仅包含数字的正则表达式。我们将这个正则表达式与之前的结果匹配。让我们看一个例子

示例

在下面的例子中,我们查找括号[1, 4]之外的数字。

<!DOCTYPE html>
<html>
<body>
   <h1>RegExp [^0-9]</h1>
   <p>Digits not in the bracket [1,4]:
      <p id = "result"></p>
   </p>
   <script>
      let text = "1234567890_Hello@$%^&65434320867042ecsceQW";
      let pattern = /[^1-4]/g;
      let result = text.match(pattern);
      let pattern2 = /\d/g;
      document.getElementById("result").innerHTML =
      JSON.stringify(result).match(pattern2);
   </script>
</body>
</html>

在上面的程序中,我们首先查找括号[1, 4]之外的所有字符,然后从这组字符中查找仅包含数字的字符。

更新于:2022年12月8日

浏览量:108

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.