使用 javascript 我需要替换文档中的匹配字符串
Using javascript I need to replace matching strings in document
使用 javascript 我需要将文档中的一些 url 重命名为文件名。
Router.route('/photos')
.get(function(req, res){
models.PHOTOS.find({}, function(err, photos){
if (err) {
res.status(500).send(err);
}
else {
var input = JSON.stringify(photos);
var output = input.replace('http://www.someurl.com/media.ashx?id=', '').replace('&t=pi&f=I', '.jpg');
res.json(JSON.parse(output));
}
});
});
所以从http://www.someurl.com/media.ashx?id=FILE123456&t=pi&f=I我应该得到FILE123456.jpg
但它只对第一个匹配的字符串进行更改,我想对整个文档进行更改。
使用正则表达式和全局,/g
,类似于
var output = input.replace(/http\:\/\/www\.someurl\.com\/media\.ashx\?id=/g, '').replace(/&t=pi&f=I/g, '.jpg');
编辑: 你知道吗,更简洁的方法可能是
(假设结构是照片是照片对象的数组,具有 url 作为属性):
Router.route('/photos')
.get(function(req, res){
models.PHOTOS.find({}, function(err, photos){
if (err) {
res.status(500).send(err);
}
else {
photos.forEach(function(photo){
photo.name = photo.url.replace(/http\:\/\/www\.someurl\.com\/media\.ashx\?id=/, '').replace(/&t=pi&f=I/, '.jpg');
});
res.json(photos);
}
});
});
使用 javascript 我需要将文档中的一些 url 重命名为文件名。
Router.route('/photos')
.get(function(req, res){
models.PHOTOS.find({}, function(err, photos){
if (err) {
res.status(500).send(err);
}
else {
var input = JSON.stringify(photos);
var output = input.replace('http://www.someurl.com/media.ashx?id=', '').replace('&t=pi&f=I', '.jpg');
res.json(JSON.parse(output));
}
});
});
所以从http://www.someurl.com/media.ashx?id=FILE123456&t=pi&f=I我应该得到FILE123456.jpg
但它只对第一个匹配的字符串进行更改,我想对整个文档进行更改。
使用正则表达式和全局,/g
,类似于
var output = input.replace(/http\:\/\/www\.someurl\.com\/media\.ashx\?id=/g, '').replace(/&t=pi&f=I/g, '.jpg');
编辑: 你知道吗,更简洁的方法可能是 (假设结构是照片是照片对象的数组,具有 url 作为属性):
Router.route('/photos')
.get(function(req, res){
models.PHOTOS.find({}, function(err, photos){
if (err) {
res.status(500).send(err);
}
else {
photos.forEach(function(photo){
photo.name = photo.url.replace(/http\:\/\/www\.someurl\.com\/media\.ashx\?id=/, '').replace(/&t=pi&f=I/, '.jpg');
});
res.json(photos);
}
});
});