首页 > 试题广场 >

以下代码的执行后,str 的值是:var str&nb...

[单选题]
以下代码的执行后,str 的值是:
var str = "Hellllo world";
str = str.replace(/(l)\1/g, '$1');


  • Helo world
  • Hello world
  • Helllo world
  • Hellllo world
对于正则表达式 /(l)\1/g,其中(l)是第一个分组,\1指向第一个分组,即\1重复了第一个分组的内容,所以该正则表达式可以表示成/(ll)/g
而对于第二个参数$1,表示用第一个分组的内容 l 对匹配到的部分进行替换(即 ll 替换成 l ),同时正则表达式有g表示全局匹配,所以4个ll被替换成2个ll。
发表于 2019-08-22 17:27:53 回复(3)
1、定义
(l)表示第一个分组里有l
\1表示所获取的第1个()匹配的引用
/g表示全局匹配
$1表示第一个分组里的值l
2、所以
(l)\l 表示匹配两个连续字符ll,即ll
(l)\l/g 表示全局匹配两个连续字符ll即llll
str.replace(/(l)\1/g, '$1') 表示将ll替换成l
3、最终
Hellllo =》 Hello
发表于 2019-08-22 11:27:54 回复(5)
正则表达式中的小括号"()"。是代表分组的意思。 如果再其后面出现\1则是代表与第一个小括号中要匹配的内容相同。
发表于 2019-02-18 15:22:32 回复(1)
解析:
\1指向第一个分组的内容,及是(l)
故表达式变成这样
/(l)\1/g === /(l)(l)/g
$1代表第一个分组。
故是这样解析的
往右解析
he(l[$1]l[$2])(l[$1]l[$2])o world
   第一次匹配   第二次匹配
hel[$1]l[$1]o world   

发表于 2020-04-05 10:23:34 回复(1)
我们创建一个正则表达式  var RegExp = /^(123)(456)\2\1$/;
这个正则表达式匹配到的字符串就是  123456456123

创建另外第二正则表达式  var RegExp1 = /^(123)(456)\1$/;
这个正则表达式匹配到的字符串是  123456123

创建另外第三正则表达式  var RegExp1 = /^(123)(456)\2$/;
这个正则表达式匹配到的字符串是  123456456  
这个\1  \2......都要和正则表达式集合()一起使用
简单的说就是:
\1表示重复正则第一个圆括号内匹配到的内容  
\2表示重复正则第二个圆括号内匹配到的内容 



编辑于 2021-12-14 18:26:47 回复(2)
相当于str.replace(/(ll)(ll)/g, "$1")
\1的意思是重复第一个圆括号的内容,即两个‘l’,为替换$1内容,$1为'l'
即正则匹配的是,有重复的两个'l',替换为一个'l'
发表于 2021-04-12 10:49:45 回复(0)
/1是捕获组的意思即第一个小括号内的值
发表于 2018-12-21 18:11:17 回复(0)
正则真的好难理解啊😪
发表于 2019-09-14 21:15:50 回复(1)

我用电脑输出是A呀

发表于 2020-01-08 18:59:09 回复(0)
对于正则表达式 /(l)\1/g,其中(l)是第一个分组,\1指向第一个分组,即\1重复了第一个分组的内容,所以该正则表达式可以表示成/(ll)/g 而对于第二个参数$1,表示用第一个分组的内容 l 对匹配到的部分进行替换(即 ll 替换成 l ),同时正则表达式有g表示全局匹配,所以4个ll被替换成2个ll。
发表于 2021-03-19 11:53:22 回复(0)
/1代表前面第一个括号匹配的值,然后放回原处代替 $1代表前面匹配的所有括号中的第一个
发表于 2021-03-11 14:36:51 回复(0)
为什么不选d
发表于 2019-03-08 18:02:23 回复(0)
\1表示重复正则第一个匹配到的内容
\2表示重复正则第二个圆括号内匹配到的内容、
$1表示第一个圆括号内的值即l

编辑于 2024-03-04 16:40:17 回复(0)
\(l)\1共同构成匹配规则ll,repalce(reg,'$1')将所有匹配字符串完全由ll替换,ll / ll=>ll即hellllo=>hello
发表于 2023-02-21 17:56:45 回复(0)
正则真是神通广大
发表于 2022-10-14 14:45:03 回复(0)
加()是为了后边的$1可以取吧,然后\1是转义了1,则重复(l),最后再进行替换
发表于 2022-09-21 10:22:13 回复(0)
$n:假如第一个参数是 RegExp对象,并且 n 是个小于 100 的非负整数,那么插入第 n 个括号匹配的字符串。提示:索引是从 1 开始。如果不存在第 n 个分组,那么将会把匹配到到内容替换为字面量。比如不存在第 3 个分组,就会用“$3”替换匹配到的内容。
发表于 2022-08-03 10:28:19 回复(0)
replace(替换的位置,替换的新参数) 因此"$1"指的是把倒数第二个字符串"l"替换上去
发表于 2022-06-10 10:55:42 回复(0)
为什么在浏览器中会执行会得到D
发表于 2022-04-25 19:29:21 回复(1)
没用过\1,原来还有这种用法
发表于 2022-04-18 22:20:28 回复(0)