1. js正则表达式,正则表达式属于js吗?
答案是不属于。
因为正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式,可以运用在js里面,也可以运用在各种后端语言中。
2. 18位字母和数字的混合组成的正则表达式的js代码?
if( /^[a-zA-Z0-9]{6,18}$/.test( password ) ) {alert( 'ok' );}等。
3. js正则表达式定义?
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、RegExp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
一、在js中定义一个正则表达式
[ ]中括号中可以写多个任意字符,代表只匹配一个字符
[abc]:代表可以匹配a,b,c三个字母中的任意一个字母
1./....../ 以 / 开头,以 / 结尾,中间的内容为正则表达式
let regex=/[abc]/;
2.new RegExp 对象
let regex = new RegExp("[abc]");//此行的代码可以将一个字符串转换为正则表达式
let regex = new RegExp(/[abc]/);
二、正则表达式中的两个方法
test() :返回一个 boolean值,代表是否匹配。
let s = "abcde";
console.log(/[abc]/.test(s)) ;//true
exec():返回一个数组,数组中存放正则表达式匹配的元素。
console.log(/[abc]/.exec(s))
//["a",index:0.input:"abcde"];
//a:匹配到的字符
//index:匹配到的字符的索引
//input:匹配的字符串
三、正则表达式在js中的作用
1.正则表达式时专门用来处理字符串的
2.正则表达式可以从字符串中 查找 需要的数据
3.正则表达式可以从字符串中 获取 需要的数据
4.正则表达式可以从字符串中 替换 需要的数据
[abc]:代表可以匹配a,b,c三个字母中的任意一个字母
[0-9]:代表匹配任意一个数字
[a-z]:代表可以匹配小写字母中的任意一个
[A-Z]:代表可以匹配大写字母中的任意一个
[a-zA-Z]:代表匹配所有的字母
[^]:如果中括号中以^开头,代表 非
[^0-9]:代表匹配非数字的任意一个字符
[^a-z]:代表可以匹配非小写字母中的任意一个
[^A-Z]:代表可以匹配非大写字母中的任意一个
[^a-zA-Z]:代表匹配所有的非字母
简写:
\d=>[0-9];
\D=>[^0-9];
\w=>[0-9a-zA-Z_] 匹配字母数字和下划线中的任意一个字符串
\W:[^0-9a-zA-Z_]
\s:匹配空白字符
\S:除了空白符外的所有字符
. 匹配除了换行符之外的所有的任意一个字符
\. 匹配一个点
let X = / /;//定义一个新的正则表达式
X{n } :匹配n个X
X{n, }:至少匹配 n个X
X{n,m}:匹配n到m个X
四、正则表达式
1.贪婪式表达式
let X = / /;//定义一个新的正则表达式
//X* :匹配0 到多个,等价于X{0,}
//X+:至少匹配一个,等价于X{1,}
//X? :匹配最多一个等价于X{0,1}
2.非贪婪式表达式=>在贪婪式表达式后添加一个 ?
let X = / /;//定义一个新的正则表达式
//X*? :匹配0
//X+?:至少匹配一个
//X?? :匹配最多一个
3.限定符
^ : 如果出现在正则表达式的第一个位置 代表以...开头
/^[0-9]/以0-9中任意一数字开头
$ :如果出现在正则表达式的尾部 代表以...结尾
/[0-9]$/以0-9中任意一数字结尾
4.选择
| :或
5.分组
( ... ) 小括号 组从左到右进行查询
6.引用
\num 引用num组的匹配内容,num从1开始
7.命名捕获组
(?<key>\d+) 将d+ 匹配的内容赋值给key可以通过exec().groups获取key的值
8.非捕获组匹配
regex = /famil(?:y|ies)/
var s11 = "familysss" ;
console.log(regex.exec(s11))
let version = "Wind1ow 98";
// regex = /Window\s+(\w+)/
regex = /(?<!Window)\s+(\w+)/
console.log(regex.exec(version))
famil(?:y|ies) 此时的小括号不能算作分组
9.断言
?= 正向确定断言
?! 正向否定断言
?<= 反向确定断言
?<! 反向否定断言
10.判断一个字符串中是否有手机号
/1[3-9]\d{9}/
//此为包含 字符串中有符合该条件则返回true
/^1[3-9]\d{9}$/
//此为一个以 1 开头 十一位的数字字符串
4. json与正则表达式的区别?
以下是它们之间的主要区别:
1. 用途:
- JSON:JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。JSON主要用于在客户端和服务器之间传输数据,尤其是在Web应用程序中。JSON数据可以通过多种编程语言(如JavaScript、Python、Java等)轻松地进行序列化和反序列化。
- 正则表达式:正则表达式是一种用于匹配和处理字符串的模式。它们广泛应用于各种编程语言中,用于验证用户输入、搜索和替换文本、拆分字符串等任务。正则表达式可以用于匹配电子邮件地址、电话号码、URL等各种模式。
2. 数据结构:
- JSON:JSON基于键值对(Key-Value)的结构,可以表示多种数据类型,如字符串、数字、布尔值、对象(Object)、数组(Array)和null。JSON数据易于人类阅读和理解,同时也易于机器处理。
- 正则表达式:正则表达式没有固定的数据结构。它们由一系列特殊字符和表达式组成,用于描述文本中的模式和匹配规则。正则表达式的结构和语法可能因编程语言而异,但它们的基本概念和用法是相似的。
3. 语法:
- JSON:JSON语法相对简单,主要包含键值对、对象和数组。键值对用冒号分隔,对象用大括号括起来,数组用方括号括起来。JSON数据中的值可以是字符串、数字、布尔值、对象、数组或null。
- 正则表达式:正则表达式的语法较为复杂,涉及许多特殊字符和表达式。正则表达式通常用于字符串的搜索、匹配和替换操作。正则表达式的语法因编程语言而异,但常见的正则表达式元字符和语法包括字符类、量词、分组、捕获等。
总之,JSON和正则表达式在数据处理和文本匹配方面具有不同的用途和特点。JSON主要用于数据交换和表示,而正则表达式则用于文本匹配和处理。在选择使用JSON还是正则表达式时,需要根据具体的需求和场景来决定。
5. js用正则表达式把数字格式化成XXXX?
'xxxxx'.match(/\d{x, y}/g) 如 '111,1111,11111'.match(/\d{4,10}/g) => ['1111', '11111']
6. 学习软件开发有没有必要学习正则表达式?
学习软件开发有没有必要学习正则表达式
对于Java湖综合其他语言都能通用正则表达式,学起来是非常有必要的。
为什么要学正则表达式:复杂的字符穿搜索、替换的工作,无法用简单的方式达成
能够帮助我们进行各种字符串验证
不止是用于编程语言中:JavaScript、Java、Perl、PHP、C#
也应用在很多的操作系统,比如:Linux、Unix、Mac、Windows
在我们常用的开发工具中,如Fiddler Willow、WebStorm、Vim,正则表达式也能帮助者我们便利的进行Find&Replace的工作。
如何学习正则表达式:首先可以把网上那些快速学会正则表达式的教程快速过一遍,找不到的私信我。因为很多部分的内容都是基础入门的,讲的也也不太多。想要有深度的依旧可以私信我。过一边就可以直接写出来一些相关正则表达式的东西了,遇到比较复杂还会有些懵不过没关系。
下面就是看书,如果可以《 Introducing Regular Expressions》尽量看原版英文,特别是在已经有一些中文教程的基础之下,看这本书完全可以。前面可能有写费劲,但是会越看越快的。到了这异步,基本上想要的正则表达式就算入门。觉得够用可以停在这一步,还想深入的话,继续看书。
如果没时间了,我建议就可以停到这里了。找一些教程仔细的看完一套,保证自己可以看懂并且写一些自己可以完成的。其实正则表达式主要就是匹配字符集,一个匹配次数。
7. 正则表达式的替换技巧有哪些呢?
JavaScript 你可以用 replace 的第二种用法,用函数作为替换项