String.sub - Prototype JavaScript 框架

Xunxin Prototype API

sub

sub(pattern, replacement[, count = 1]) -> string

将字符串中前 count 个与 pattern 指定的模式匹配的子串用 replacement 替换掉。replacement 可以是一个普通的字符串、一个回调函数或是一个 Template 字符串。pattern 可以是一个字符串或是一个正则表达式。

String#gsub 不同,String#sub 还具有可选的第三个参数, 用于指定模式匹配的次数,如果不指定,默认为 1。

除此以外,String#subString#gsub 具有相同的功能。完整的描述请参见 String#gsub

样例

var fruits = 'apple pear orange'; 
			
fruits.sub(' ', ', ');
// -> 'apple, pear orange' 
fruits.sub(' ', ', ', 1); 
// -> 'apple, pear orange'
fruits.sub(' ', ', ', 2); 
// -> 'apple, pear, orange' 

fruits.sub(/\w+/, function(match){
	return match[0].capitalize() + ','
}, 2); 
// -> 'Apple, Pear, orange' 

var markdown = '![a pear](/img/pear.jpg) ![an orange](/img/orange.jpg)'; 

markdown.sub(/!\[(.*?)\]\((.*?)\)/, function(match){ 
	return '<img alt="' + match[1] + '" src="' + match[2] + '" />';
}); 
// -> '<img alt="a pear" src="/img/pear.jpg" /> ![an orange](/img/orange.jpg)'

markdown.sub(/!\[(.*?)\]\((.*?)\)/, '<img alt="#{1}" src="#{2}" />'); 
// -> '<img alt="a pear" src="/img/pear.jpg" /> ![an orange](/img/orange.jpg)' 

注意

不要 在正则表达式中使用标识 "g",这会导致一个无限循环。