温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Javascript中如何使用正则表达式

发布时间:2022-02-23 11:42:02 来源:亿速云 阅读:187 作者:小新 栏目:开发技术

小编给大家分享一下Javascript中如何使用正则表达式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

正则表达式 - 简介

Regex 起源于神经科学数学,直到 1968 年Ken Thompson在用于文本搜索的 QED 文本编辑器中才在编程中实现。现在它是许多编程语言的一部分,例如perl、Java、Python、Ruby 和 JavaScript。

让我们看一些关于正则表达式如何工作的例子。

我会用 JavaScript在我的例子中。现在,要通过初级水平,你需要学习所有字符、类、量词、修饰符和方法在正则表达式中使用。这是JavaScript教程中的正则表达式页面的链接,你可以在其中查看包含所有这些的表。你还可以参考本文末尾的备忘单,其中包含最常用的字符。

以下是突出显示的一行中的匹配示例:

Basket, bulb,B12 vitamin, BaSO4 , N BC company

上面的正则表达式将停止搜索"Basket"并返回一个积极的回复. 这是因为如果你希望正则表达式查看所有可能的匹配项,则必须指定全局修饰符 ' g'。

现在,让我们看看如何使用这个表达式 JavaScript. 该test法有云:如果找到了一个匹配的回报true,否则false。

var input = "your test string", regex = /B[a-zA-Z\d]+/;
if(!regex.test(input))
alert('No match is found');
else
alert('A match is found');

让我们尝试另一种方法:match返回在数组中找到的匹配项。

var input = "your test string", 
regex = /B[a-zA-Z\d]+/g, 
/*I've added the global modifier 'g' to the regex to get all the matches*/
ary = input.match(regex); 
if(ary===null)
alert('No match is found');
else
alert('matches are: ' + ary.toString());

字符串replace呢?现在让我们用正则表达式试试。

var input = "your test string", 
regex = /B[a-zA-Z\d]+/g;
alert(input.replace(regex, "#"));
正则表达式练习

对于练习,你可以在百度、谷歌等搜索“正则表达式练习”并尝试解决它们。根据难度级别,以下是尝试这些练习时的预期结果。

基本的

对我来说,能够验证密码对初学者来说就足够了。因此,验证 8 到 16 个字符的密码长度, 字母数字,允许你选择特殊字符。

中间的

这是你应该练习更多真实世界数据并学习更多正则表达式点的地方,如前瞻、后视断言和匹配组;

  • 验证 PIN 码、十六进制、日期、电子邮件 ID、浮点数。

  • 替换尾随零、空格、一组匹配的单词

  • 提取 URL 的不同部分

进阶的

你可以优化上述练习的解决方案 - 最优化的电子邮件正则表达式包含数千个字符 - 因此,只要你感到舒服就可以使用它,这就足够了。你也可以试试:

  • 解析HTML或XML(尽管在现实世界中不鼓励这样做,因为使用正则表达式解析像HTML这样的非正则语言永远不会万无一失。加上XML解析是一项艰巨的任务,更适合高级用户)

  • 替换标签

  • 删除注释(IE 条件注释除外)

正则表达式工具

可视化正则表达式的工具对我来说是最酷的事情之一。如果你遇到过很长的复杂正则表达式,只需将它们复制粘贴到其中一个工具中,你就可以清楚地查看流程。除此之外,你还可以使用许多工具来处理正则表达式代码。他们还展示了示例和备忘单以及共享功能。

  • Debuggex - 它会根据你的输入绘制正则表达式图,你可以从那里快速共享到 StackOverflow。

  • RegExr – 你可以用这个来测试你的正则表达式。它还提供了参考、备忘单和示例来帮助你。

正则表达式备忘单
令牌定义
[ABC]任何单个字符 a、b 或 c
[^abc]除 a、b 或 c 之外的任何字符
[az]介于(包括)a 到 z 之间的字符
[^az]除 a 到 z 之外的字符
[AZ]介于(包括)A 到 Z 之间的字符
.任意单个字符
\s任何空白字符
\S任何非空白字符
\d任何数字 0 到 9
\D任何非数字
\w任何单词字符(字母、数字和下划线)
\W任何非单词字符
(…)捕获所有封闭的东西
(a|b)匹配 a 或 b
a?字符 a 要么不存在,要么出现一次
a*字符 a 要么不存在,要么出现多次
a+字符 a 出现一次或多次
{3}字符 a 连续出现 3 次
{3,}字符 a 连续出现 3 次或更多
{3,6}字符 a 连续出现 3 到 6 次
^字符串的开始
$字符串结束
\b一个词的边界。如果字符是单词的最后一个或第一个单词字符,或者如果字符介于单词或非单词字符之间
\B非词边界

看完了这篇文章,相信你对“Javascript中如何使用正则表达式”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI