首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《现代Javascript高级教程》正则表达式的常见问题与练习

问题一:JavaScript 中的字符串与正则表达式操作 JavaScript 中,我们可以使用三个方法来操作字符串和正则表达式:test、exec 和 match。... match 方法中,括号的作用有两个: 分组 捕获。捕获的意思是将用户指定的匹配到的子字符串暂存并返回给用户。 当传入的正则表达式没有使用 g 标志时,返回一个数组。...数组的第一个值第一个完整匹配,后续的值分别为括号捕获的所有值,并且数组还包含以下三个属性: groups:命名捕获组 index:匹配结果的开始下标 input:传入的原始字符串 示例: const...当传入的正则表达式没有使用 g 标志时,每次调用 exec 方法都会返回第一个匹配结果的信息数组,包括匹配的字符串分组捕获的值以及其他属性。...问题四:正则表达式中替换字符串 JavaScript 中,我们可以使用 String.prototype.replace() 方法来替换字符串中的内容。正则表达式可以用于指定要替换的模式。

15240

一道二进制子串算法,让面试官都解不出来?

如果遇到10或者是01的情况,则说明连续的1或者是连续的0都断了,那么就可以拿到前面连续1或者是0的数量了,然后往后找连续的0或者是1的数量。接着看看有多少个符合的子串,之后持续向后查找。...如果没有参数,结果Infinity。如果有任一参数不能被转换为数值,结果 NaN。 什么是JavaScript Math 对象? 定义和用法 min() 方法可返回指定的数字中带有最低值的数字。...方法:借助min() 方法与push() 方法: total计数,res存储相邻连续字符串的个数 JavaScript push() 方法 定义和用法 push() 方法可向数组的末尾添加一个或多个元素...方法:借助match() 方法 000111必定有三个子串 00011必定有两个子串 0111必定有1个子串 以此类推, 每两组数据之间长度最短的值子串的数量 把字符串数字分组切割,如:['00'...解题思路: 把字符串数字分组切割,如:['00', '11', '00', '11'],相邻的两组数据组合,长度较短的数据长度即为这组数据可能的数据次数 /** * @param {string}

55830
您找到你想要的搜索结果了吗?
是的
没有找到

一道二进制子串算法,让面试官都解不出来?

如果遇到10或者是01的情况,则说明连续的1或者是连续的0都断了,那么就可以拿到前面连续1或者是0的数量了,然后往后找连续的0或者是1的数量。接着看看有多少个符合的子串,之后持续向后查找。...如果没有参数,结果Infinity。如果有任一参数不能被转换为数值,结果 NaN。 什么是JavaScript Math 对象? 定义和用法 min() 方法可返回指定的数字中带有最低值的数字。...方法:借助min() 方法与push() 方法: total计数,res存储相邻连续字符串的个数 JavaScript push() 方法 定义和用法 push() 方法可向数组的末尾添加一个或多个元素...方法:借助match() 方法 000111必定有三个子串 00011必定有两个子串 0111必定有1个子串 以此类推, 每两组数据之间长度最短的值子串的数量 把字符串数字分组切割,如:[‘...解题思路: 把字符串数字分组切割,如:[‘00’, ‘11’, ‘00’, ‘11’],相邻的两组数据组合,长度较短的数据长度即为这组数据可能的数据次数 /** * @param {string}

42530

分享近百道JavaScript 基础面试题,帮助你巩固JavaScript 基础知识

你可以使用 slice() 方法、展开运算符或 Array.from() 方法克隆数组。 46.解释JavaScript中event.preventDefault()的概念。...你可以使用各种方法从数组中删除重复项,例如使用 Set、filter() 或 reduce()。 61. JavaScript 中如何检查变量是否数组?... JavaScript 中如何检查变量是否空? 可以通过将变量与 null、undefined 或空字符串进行比较来检查变量是否空。 65. JavaScript 中有哪些不同类型的错误处理?...JavaScript 中 charAt() 方法的用途是什么? charAt() 方法返回字符串中指定索引处的字符。 79. 如何在 JavaScript 中将数字四舍五入到特定的小数位?... JavaScript 中如何检查一个值是否数字? 可以使用 typeof 运算符检查值是否属于“数字”类型,或使用 isNaN() 函数检查它是否有效数字

17810

分享2023年最新的15种JavaScript 速记技巧

字符串数组您可以使用该split方法 JavaScript 中将字符串转换为数组。此方法使用分隔符字符串或正则表达式将字符串拆分为子字符串。...分钟(...数组);控制台。日志(最小数量); // 输出:17.将字符串转换为数字要在 JavaScript 中将字符串转换为数字,有几种方法。...42 的数字类型// 将字符串转换为浮点数const num3 = "3.14" ;const num4 = parseFloat (num3); // num4 现在是数字类型,值 3.14使用一元加运算符...(+):// 将字符串转换为数字const num1 = "42" ;常量num2 = +num1; // num2 现在是值 42 的数字类型// 将字符串转换为负数const num3 = "-....双位非运算符(~~) ( ~~) 运算符的帮助下,您可以将数字四舍五入最接近的整数。

2K00

JavaScript语言精粹【数组、正则表达、JSON、JSLint】

本文链接:https://ligang.blog.csdn.net/article/details/44701967 四、数组 当属性名是小而连续的整数时,应该使用数组;否则使用对象。...判断是否数组 JavaScript中对数组和对象的区别是混乱的,typeof运算符的结果都为'object' 自定义is_array函数弥补缺憾: var is_array = function...JavaScript没有多维数组,但其支持元素数组数组。 五、正则表达式 JavaScript语法借鉴自Java,函数借鉴自Scheme,原型继承借鉴自Self,正则表达式借鉴自Perl。...:表示一个非捕获型分组 六、JSON JSON有6种类型的值:对象、数组字符串数字、布尔值和null。 JSON对象是一个容纳“名/值”对的无序集合。名字可以是任何字符串。...JavaScript中不允许以左花括号“{”开始,因为那会与块语句产生混淆。“()”在此处作为表达式的分组运算符,能对包围在其中的表达式进行求值,能正确识别对象字面量。

48321

语法-类型注解

("Runoob"); } } var obj = new Site(); obj.name(); 以上实例定义了一个类 Site,该类有一个方法 name(),该方法终端上输出字符串 Runoob...String 文本类型 Number 数字 Array 数组 Null 和 Undefined 空和未定义 定义类似时,通过 : 声明数据类型,如: 定义一个布尔值 let a: string...打印输出 7 # 联合类型 联合类型(union Types) 定义一个变量,可以接收多种类型的值 举个例子,假设你有一个名为 result 的变量,你希望它可以保存数字或者字符串类型的值。...你可以这样声明它的类型: let result: number | string; 现在,result 变量可以存储数字类型的值,也可以存储字符串类型的值。...例如: result = 42; // 保存数字类型的值 result = "Hello"; // 保存字符串类型的值 使用联合类型,类型声明中将这两种类型联合起来,表示该变量可以是其中任意一种类型。

15220

ES6学习笔记(七)正则表达式

如:JS中验证手机号时,我们需要考虑用户输入的字符必须是number类型,且必须是11位的整数,且数字的前三位必须是134,155,183,188,199等等。...\d{2})-(\d{2})/g, "$2/$3/$1")); // 表示先全局匹配4位数字-2位数字-2位数字分组组成的字符串,再通过索引排序,并将-替换成/ 输出03/04/2020 忽略分组:当不想捕获分组时...=\d),表示匹配到一个单词\w 时还需要向后判断是否一个数字\d console.log("a2*34V8".replace(/\w(?...如果没有匹配的文本则返回 null,否则会返回一个结果“数组”对象: [匹配到的文本, 与第 1 个分组相匹配的文本,与第 n 个分组相匹配的文本…] index,声明匹配文本的第一个字符的位置 input...split(reg),利用 regexp 匹配结果作为分隔符对字符串进行分割,返回一个数组

56510

代码之美,正则之道

正则表达式匹配时,各个捕获性分组匹配到的内容,会依次保存在内存中一个特定的组里,通过\+数字的方式可以正则中引用组里的内容,这种引用称作反向引用。...…) 命名分组也是捕获性分组, 它将匹配的字符串捕获到一个组名称或编号名称中, 获得匹配结果后, 可通过分组名进行获取. 如下是一个python的命名分组的例子....import redata = "123abc789"# 使用了逆序肯定环视,替换左边123的连续的小写英文字母,匹配成功,故abc被替换为456regExp = r"(?... “test” 字符串. ① 由于上述 responseText 字符串中包含至少两个子字符串 “dev”, 显然不能直接 replace 字符串 “dev” “test”. ② 同时由于 js...我们先来看后面的部分, 然后逐步分析之. “[0-9]{3}” 表示连续3位数字. “([0-9]{3})+” 表示连续3位数字至少出现一次或更多次. “([0-9]{3})+$” 表示连续3的正整数倍的数字

1.2K30

代码之美,正则之道

如下便是简单的匹配连续数字的正则表达式: /[0-9]+/ /\d+/ (左滑查看完整代码,下同) “\d” 就是元字符, 而 “+” 则是限定符. 元字符 元字符 描述 ....正则表达式匹配时,各个捕获性分组匹配到的内容,会依次保存在内存中一个特定的组里,通过\+数字的方式可以正则中引用组里的内容,这种引用称作反向引用。...…) 命名分组也是捕获性分组, 它将匹配的字符串捕获到一个组名称或编号名称中, 获得匹配结果后, 可通过分组名进行获取.... “test” 字符串. ① 由于上述 responseText 字符串中包含至少两个子字符串 “dev”, 显然不能直接 replace 字符串 “dev” “test”. ② 同时由于 js...我们先来看后面的部分, 然后逐步分析之. “[0-9]{3}” 表示连续3位数字. “([0-9]{3})+” 表示连续3位数字至少出现一次或更多次. “([0-9]{3})+$” 表示连续3的正整数倍的数字

1.8K20

第三章 正则表达式括号的作用

括号的作用,其实三言两语就能说明白,括号提供了分组,便于我们引用它。 引用某个分组,会有两种情形:JavaScript里引用它,正则表达式里引用它。 本章内容虽相对简单,但我也要写长点。...1.1 分组 我们知道/a+/匹配连续出现的“a”,而要匹配连续出现的“ab”时,需要使用/(ab)+/。...比如,要匹配如下的字符串: I love JavaScript I love Regular Expression 可以使用正则: var regex = /^I love (JavaScript|Regular...反向引用 除了使用相应API来引用分组,也可以正则本身里引用分组。但只能引用之前出现的分组,即反向引用。 还是以日期例。....$4 ); // 3 我们可以看看这个正则匹配模式: 第一个字符是数字,比如说1, 第二个字符是数字,比如说2, 第三个字符是数字,比如说3, 接下来的是\1,是第一个分组内容,那么看第一个开括号对应的分组是什么

1.6K60

ES6--字符串、正则、数值、数组的扩展

对象上,而codePointAt方法定义字符串的实例对象上。.../* 返回字符串给定位置的字符 */ ChineseName.at(0);// 李 EnglishName.at(0);// l 详见:【乱码,乱码】 查找函数 includes():返回布尔值,表示是否找到了参数字符串...startsWith():返回布尔值,表示参数字符串是否字符串的头部。 endsWith():返回布尔值,表示参数字符串是否字符串的尾部。...模板字符串 模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者字符串中嵌入变量。...将类数组和可遍历的对象转为真正的数组 Array.from(document.querySelectorAll('p')); Array.from(arguments); 将一组数转换为数组 Array.of

45931

ES6--字符串、正则、数值、数组的扩展

三、字符串的扩展 字符编码 JavaScript内部,字符以UTF-16的格式储存,每个字符固定为2个字节。...对象上,而codePointAt方法定义字符串的实例对象上。...startsWith():返回布尔值,表示参数字符串是否字符串的头部。 endsWith():返回布尔值,表示参数字符串是否字符串的尾部。...模板字符串 模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者字符串中嵌入变量。...将类数组和可遍历的对象转为真正的数组 Array.from(document.querySelectorAll('p')); Array.from(arguments); 将一组数转换为数组 Array.of

34510

JavaScript小技能:变量

, 10); // 10 parseInt("11", 2); // 3,把一个二进制数字字符串转换成整数值 //parseFloat() 只应用于解析十进制数字 //一元运算符 + 也可以把数字字符串转换成数值...//但是运算符 "+"对字符串的转换方式与之不同, 只要字符串含有无法被解析成数字的字符,该字符串就将被转换成 NaN。...; })(document.body);//命名立即调用的函数表达式(IIFE——Immediately Invoked Function Expression) 3.2 Object 对象是存储单个分组中的相关功能的集合...Java中的数组,固定长度,存储同一类型数据,连续内存空间。...js中的数组可变长,存储数据不固定,存储空间不一定连续JavaScript 中的数组是一种特殊的对象,与普通对象类似以数字属性名,但只能通过[] 来访问。

63540

JavaScript正则表达式

JavaScript脚本中,利用正则表达式可以很容易的实现文本字符串的检测、替换等功能。 正则表达式是字符串,它定义了一个用来搜索匹配字符串的模式。...定义模式:/表达式/ JavaScript脚本语言中引入正则表达式主要作用: 验证字符串格式 查找字符串 替换文本 创建方式: 1、采用RegExp对象的显式构造函数构造 var...is tg tg document.write(result1) //结果false split:把字符串分隔字符串数字;//结果一个数组...字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。...( ):用于分组; var reg=/^([a-z]+)\s([0-9]{4})$/ //使用了分组 这个是捕获性分组 所有的分组都要返回 结果返回一个数组

2.4K50

RegExp对象

4.用于字符串的方法 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。...; var n = str.search(/Runoob/i); 输出结果: 6 replace() 方法 用于字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。...返回:如果匹配返回数组,不匹配返回null 语法:reg.exec(检测的内容) 说明: 第一个数组元素存放的匹配的内容 第二、三……数组元素存放的是分组所匹配的内容...中字符串中的索引 //input:是返回被匹配的字符串 用于字符串的方法 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。...//group:是匹配时分组里对应的内容,(和正则有关,没有分组就没有这个参数) //index:匹配项字符串中的index //str:原字符串

1.4K30

JavaScript中的正则表达式

\D [^0-9] 非数字字符 [\b] 退格符 量词 我们上面认识到的正则语法当中,我们可以把两位字母描述/\w\w/,三位字母描述/\w\w\w/,但如果要描述很多位字母怎么办?...(查找所有匹配而不是匹配到第一个就停止) m 执行多行匹配 console.log(/JAVA/i.test('java'));//true 支持正则的String对象方法 search(): 用于检索字符串中指定的子字符串...JAVAscript'.replace(/java/ig, 'java'));//java is not javascript 回忆上面我们所提到的正则的引用 $加数字可以保存分组的匹配的内容,这里我们就可以用到...,参数必须是正则表达式,返回一个由匹配结果组成的数组 match方法中如果正则表达式设置修饰符g,则返回的数组字符串中所有匹配的结果 console.log('JAVA is not JAVAscript...,剩下的元素圆括号包含的子表达式匹配的结果 console.log('1a2b'.match(/(\d)([a-z])/)); //['1a', '1', 'a'] split(): 用于把一个字符串分割成数组

52720
领券