JavaScript 正则表达式中的 \w 和 \W 有什么区别?


本文讨论了 JavaScript 正则表达式中的 \w 和 \W。\w 和 \W 元字符用于匹配给定字符串的字符。\w 和 \W 彼此不同。\w(字符)等价于 [a-zA-Z0-9_],这意味着它匹配任何单个字母、数字或下划线。

\w 不匹配的字符由 \W 匹配。\W 等价于 [^a-zA-Z0-9_],这意味着它匹配除字母、数字和下划线之外的任何字符。要使用模式匹配字符串,可以使用以下方法:string.match(pattern)、string.search(pattern)、pattern.exec(string)、pattern.test(text)。在这些示例中,我们仅使用 match 方法。

语法

\w 正则表达式的语法如下:

RegExp("\w", "g")
Or
/\w/g

示例 1

这是一个使用\w 元字符的示例程序。

<!DOCTYPE html>
<html>
<head>
   <title>\w vs \W in JavaScript regex</title>
</head>
<body style="text-align : center">
   <h3>\w vs \W in JavaScript regex</h3>
   <p id='result'></p>
   <script>
      var string = "!#@ Tutorials point is one of the best e-learning platform @#!"
      var reg_ex = new RegExp("\w", "g");
      var output = string.match(reg_ex);
      document.getElementById('result').innerHTML = output;
   </script>
</body>
</html>

执行上述代码后,将生成以下输出。

示例 2

\W 正则表达式的语法如下:

RegExp("\W", "g")
Or
/\W/g

这是一个使用\W 元字符的示例程序。

<!DOCTYPE html>
<html>
<head>
   <title>\w vs \W in JavaScript regex</title>
</head>
<body style="text-align : center">
   <h3>\w vs \W in JavaScript regex</h3>
   <p id='result'></p>
   <script>
      var string = "!#@ Tutorials point is one of the best e-learning platform @#!"
      var reg_ex = new RegExp("\W", "g");
      var output = string.match(reg_ex);
      document.getElementById('result').innerHTML = output;
   </script>
</body>
</html>

执行上述代码后,将生成以下输出。

示例 3

这是一个比较\w\W 模式以及用户定义模式结果的示例程序。

<!DOCTYPE html>
<html>
<head>
   <title>\w vs \W in JavaScript regex</title>
</head>
<body style="text-align : center">
   <h3>\w vs \W in JavaScript regex</h3>
   <p id='result'></p>
   <script>
      var string = "!#@_ Tutorials point is one of the best e-learning platform _@#!"
      var reg_ex1 = new RegExp("\w", "g"); //Existing Regular expression Metacharacter \w
      var reg_ex2 = /[a-zA-Z0-9_]/g; // User-defined pattern
      var reg_ex11 = /\W/g; //Existing Regular expression Metacharacter \W
      var reg_ex22 = /[^a-zA-Z0-9_]/g; // User-defined pattern
      var output1 = string.match(reg_ex1);
      var output2 = string.match(reg_ex2);
      var output11 = string.match(reg_ex11);
      var output22 = string.match(reg_ex22);
      document.getElementById('result').innerHTML = 'For \w :'+'<br/>'+' Using RegExp("\w", "g") : '+output1+'<br/>'+'Using /[a-zA-Z0-9_]/g : '+output2+'<br/>'+'For \W :'+'<br/>'+'Using /\W/g : '+output11+'<br/>'+'Using /[^a-zA-Z0-9_]/g : '+output22;
   </script>
</body>
</html>

执行上述代码后,将生成以下输出。

更新于: 2022-12-09

3K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.