小编给大家分享一下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中如何使用正则表达式”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。