当我们有一个包含空格字符的字符串时:
var str = ' A B C D EF ';
我们想从字符串中删除空格(我们想要这个:)'ABCDEF'。
'ABCDEF'
这两个:
str.replace(/\s/g, '')
和这个:
str.replace(/\s+/g, '')
将返回正确的结果。
这是否意味着+在这种情况下是多余的?在这种情况下,这两个正则表达式之间是否有区别(例如,它们是否会以任何方式产生不同的结果)?
+
更新:性能比较 -/\s+/g更快。见这里:http: //jsperf.com/s-vs-s
/\s+/g
在第一个正则表达式中,每个空格字符被逐个字符替换为空字符串。
在第二个正则表达式中,由于+.
但是,就像 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#