为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 正则表达式如何处理这个脊柱格句子

JavaScript 正则表达式如何处理这个脊柱格句子

UYOU 2022-12-29 09:30:02
我有以下 JavaScript 功能:function spinalCase(str) {  str = str.replace(/([a-z])([A-Z])/g, '$1 $2');  console.log(str);}spinalCase('thisIsSpinalTapIp');现在它向我展示:这是脊椎穿刺 Ip我不明白它如何识别space()以及为什么它在replace函数中使用2 个正则表达式。你能分解一下吗?注意:此函数的目标是获取脊柱格语句。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

让我们分解一下:

([a-z])匹配一个小写字母

([A-Z])匹配大写字母

/([a-z])([A-Z])/gcombine 匹配小写字母后跟一个大写字母,并带有将匹配所有这些事件的全局标志。

当发现此类事件时,它们将被替换为 $1 $2(此处 $1 是第 1 组小写字母,$2 是第 2 组大写字母,用空格分隔)。

现在让我们看看thisIsSpinalTapIp是如何工作的

上面的正则表达式将匹配sIsSlTpI

并用s Is Sl Tp I替换它们

所以字符串变成了 Is Spinal Tap Ip

此链接将帮助您可视化它的正则表达式


查看完整回答
反对 回复 2022-12-29
?
茅侃侃

TA贡献1842条经验 获得超21个赞

正则表达式解析一个小写字母和一个大写字母序列的每次出现,将小写字母存储在中,将大写字母存储$1$2...中,然后替换$1$2$1 $2,例如插入一个空格。

以下比赛:

就是pina lT a pI p

所以你会有一个集合['sI','sS','lT','pI'],其中将在两者之间添加空格


查看完整回答
反对 回复 2022-12-29
?
哔哔one

TA贡献1854条经验 获得超8个赞

您在 RegEx 中通过括号创建了两个组名称 $1 和 $2。$1 和 $2 指的是那些组匹配的字符串。

这些字符串将替换 String.replace 的第二个参数中的 $1 和 $2。

每个组的名字就像$Number,这个数字会按照正则表达式中括号的顺序递增。


查看完整回答
反对 回复 2022-12-29
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号