gpt4 book ai didi

javascript -/\s/g 和/\s+/g 有区别吗?

转载 作者:IT王子 更新时间:2023-10-29 02:50:40 24 4
gpt4 key购买 nike

当我们有一个包含空格字符的字符串时:

var str = '  A B  C   D EF ';

我们想要从字符串中删除空格(我们想要这样:'ABCDEF')。

这两个:

str.replace(/\s/g, '')

还有这个:

str.replace(/\s+/g, '')

将返回正确的结果。

这是否意味着 + 在这种情况下是多余的?在这种情况下,这两个正则表达式之间是否存在差异(例如,它们能否以任何方式产生不同的结果)?


更新:性能比较 - /\s+/g 更快。看这里:http://jsperf.com/s-vs-s

最佳答案

在第一个正则表达式中,每个空格字符被一个字符一个字符地替换为空字符串。

在第二个正则表达式中,由于 +,空格字符的每个连续字符串 被替换为空字符串。

但是,就像 0 乘以任何其他值是 0 一样,这两种方法似乎都以完全相同的方式去除空格。

如果将替换字符串更改为 '#',区别就会变得更加明显:

var str = '  A B  C   D EF ';
console.log(str.replace(/\s/g, '#')); // ##A#B##C###D#EF#
console.log(str.replace(/\s+/g, '#')); // #A#B#C#D#EF#

关于javascript -/\s/g 和/\s+/g 有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5964373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com