首页 > 编程语言 >Javascript:正则表达式初学者指南(Regex) [a-zA-Z0-9]{4} 表示 包含大小写字母或者数字的字符串长度是4

Javascript:正则表达式初学者指南(Regex) [a-zA-Z0-9]{4} 表示 包含大小写字母或者数字的字符串长度是4

时间:2023-06-15 19:44:24浏览次数:51  
标签:Regex regex 匹配 字符 小写字母 Javascript zA 正则表达式 input

Javascript:正则表达式初学者指南(Regex) [a-zA-Z0-9]{4} 表示 包含大小写字母或者数字的字符串长度是4
https://www.w3cschool.cn/article/55107251.html

正则表达式是形成可以在字符串中搜索的模式的一组字符。正则表达式可用于验证,例如验证信用卡号,用于搜索,即通过复杂的文本匹配,以及用另一个字符串替换匹配的文本。它还具有出色的多语言支持,学习一次,你可以跨多种编程语言使用它。

我见过很少有人第一次看正则表达式,然后完全忽略它。我不怪他们;regex 的语法很复杂,就像那些命令行语言一样,会让很多人感到畏缩,只会更糟。但是每一个新事物都是可怕的,一开始似乎是不可能学会的。所以,借用霍拉修斯的话,我会这样说;开始,勇敢,冒险变得明智。

正则表达式 - 简介

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

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

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

让我们看一个带有解释的简单示例。这是一个正则表达式。

正则表达式

这是上面的正则表达式将在一行中查找的内容,一个字符 'B' 后跟(包括)'a' 到 'z'、'A' 到 'Z' 和数字 0 到 'Z' 之间的任何字符中的至少一个9.

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

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非词边界


标签:Regex,regex,匹配,字符,小写字母,Javascript,zA,正则表达式,input
From: https://www.cnblogs.com/sunny3158/p/17483931.html

相关文章

  • javascript eval和JSON之间的联系
    本文着重解释eval函数和JSON数据格式之间的联系以及一些细节上的问题。如果您想详细了解eveval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/EvalJSON:http://www.json.org/eval函数的工作原理eval函数会评估一个给定的含有JavaScr......
  • 一些JavaScript单行代码
    数组去重从数组中删除所有重复值,实现方式非常多,我们这里就说最简单的方式,一行代码搞定:constuniqueArr=(arr)=>[...newSet(arr)];console.log(uniqueArr(["前端","js","html","js","css","html"]));//['前端','js',&......
  • 碎片化学习前端之JavaScript(JS 压缩图片)
    前言图片压缩是前端开发中常见的需求,目前前端主流的解决方案有:Canvas手动实现压缩以及第三方库压缩两种方案。Canvas手动实现压缩Canvas实现压缩主要原理是:将图片绘制到canvas上,然后通过调整canvas的宽高来实现压缩。functioncompressImage(file,maxWidth,maxHeight......
  • JavaScript开发工具-WebStorm 2023 mac/win版
    WebStorm是一款由JetBrains开发的JavaScript开发工具,是专为JavaScript开发者设计的集成开发环境(IDE)。它提供了强大的功能和工具,能够帮助开发者更高效地编写、调试和维护JavaScript代码。→→↓↓载WebStorm2023mac/win版 WebStorm拥有一套丰富的功能,使得它成为JavaScript开......
  • [从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)
    jQuery片段:1.(function(){2.//这里忽略jQuery所有实现3.})();当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来!真神奇哦!嘿嘿!胡闹到此为止。在这一节,我们碰到的jQuery片段是一组立即运行的匿名函数。而这种用法在论坛上也曾引起过激辩......
  • [从jQuery看JavaScript]-数据类型和对象(Type and Object)(一)
    jQuery片段:1.var2.//Willspeedupreferencestowindow,andallowsmungingitsname.3.window=this,4.//Willspeedupreferencestoundefined,andallowsmungingitsname.5.undefined,6.//MapoverjQueryincas......
  • JavaScript中将字符串转换为数字的七种方法总结 乘以数字: str = '2344'; console.lo
    JavaScript中将字符串转换为数字的七种方法总结乘以数字:str='2344';console.log(str*1)//expectedresult:2344https://www.jb51.net/article/261613.htm+目录1.使用parseInt()2.使用Number()3.使用一元运算符(+)4.使用parseFloat()5.使用Math.floor()6.乘......
  • javaScript 对象与数组参考
    javaScript对象与数组参考本文列举了各种JavaScript对象与数组,同时包括对上述每一对象或数组所完成工作的简短描述,以及与其相关的属性方法,以及事件处理程序,还注明了该对象或数组的父对象用户同样可能需要参考OnlineCompanion中的超级文本ObjectHierarchy页面(http://ww......
  • JavaScript内存限制
    JavaScriptmemorylimitJavaScript应用程序可以存储的最大数据量是多少?我猜这是由浏览器处理的,每个浏览器都有其局限性吗?如果没有限制,将创建页面文件吗?如果是这样,那不安全吗? 相关讨论  有一些限制,尽管这些取决于浏览器。例如,Firefox对堆栈空间以及过多的CPU消......
  • javascript现代编程系列教程之七——字符集(七)
    Unicode:Unicode是一个字符集(Charset),包含了世界上所有的字符。每个字符在Unicode中都有其唯一对应的数字编号,这就是我们常说的Unicode码。UTF-8:UTF-8是Unicode的实现方式之一。UTF-8使用一至四个字节为每个字符编码,英文字符通常使用一个字节,西欧其他语言的部分字符使用......