我正在编写一个脚本,将所有内容的URL更改到新位置。
var regex = /.*cloudfront.net/
var pDistro = "newDistro.cloudfront.net/"
for(var i=0;i<strings.length;i++){
strings[i] = strings[i].replace(regex,pDistro);
}
我正在对平均每个字符串大约140个字符的URL进行替换。它们遵循以下格式:
https://[thing to replace].cloudfront.net/[something]/[something]/[something]
。但是,这个操作非常缓慢,平均大小的数组处理需要大约4.5秒。为什么这么慢?如何让它更快?如果这个问题更适合codereview堆栈交换或其他网站,请告诉我,我会将其移动到那里。
编辑:从我拉取的数据库中提取出来的数据看起来是140个字符。在拉取过程中,进行了一些虚拟化并将另外400个字符附加到字符串上,所以不奇怪正则表达式需要这么长时间。像其他人指出的那样,循环140个字符的字符串需要较少的时间。故事的道理是:“确保你拥有的数据符合你的期望”,“如果您的正则表达式花费太长时间,请使用较小的字符串和更具体的正则表达式(即无通配符)”。