日期:2014-05-16  浏览次数:20314 次

Javascript和Perl split方法之细微差异

以前不太熟悉Javascript的String和Array对象,没想到它也借鉴了其他脚本语言(如Perl)里很多类似功能,比如字符处理功能,如:

?

  • 正则表达式相关(match, replace, search)
  • split

Array的很多方法则更像Perl里数组的内建方法:

?

  • pop/push/shift/unshift
  • join
  • slice

这些常见的方法使得文本处理变得十分容易,Javascript借鉴这些方法对于习惯了这些方法的开发者无疑是件好事。但是,Javascript的实现有某些细微的差异,比如split的第二个参数limit在Perl中表示匹配后最大的列数, 而Javascript里则表示取多少个列。以下是具体的例子说明两者的差异:

Javascript的例子:

var s = 'Javascript Perl PHP Progress';
var t = s.split(' ', 2);
console.log(t.join(' '));
?

输出为 Javascript Perl

?

?

Perl的例子:

#!/usr/bin/perl -w
use strict;
 
my $str = 'Javascript Perl PHP Progress';
my ($t1, $t2) = split(/ /, $str, 2);
print "$t2\n";
?

输出为 Perl PHP Progress

?

?

习惯了Perl的开发者需要特别注意这些细小的差异。