我使用Facebook API从FB页面注释中获取输出。在某些笔记中有一个图像,而在其他笔记中则没有。我想提取图像的src(如果有的话)。
我正在使用这个正则表达式并且它工作正常,但问题是如果一个音符不包含图像全部失败。
json.data[i].message.match(/src=(.+?[\.jpg|\.gif|\.png]")/)[1]
在使用正则表达式之前,我可以使用某种控制结构(如果不是)来检查注释是否包含图像吗?
如果备注不包含图片,我会收到此错误:
Result of expression 'json.data[i].message.match(/src=(.+?[\\.jpg|\\.gif|\\.png]\")/)' [null] is not an object.
我正在使用Javascript和Appcelerator。
答案 0 :(得分:2)
在使用正则表达式之前,我可以使用某种控制结构(如果不是)来检查注释是否包含图像吗?
是控制结构,但你不需要在正则表达式之前执行它,正则表达式告诉你它是否成功。将你的陈述分为两部分:
var result = json.data[i].message.match(/src=(.+?[\.jpg|\.gif|\.png]")/);
if (result) {
path = result[1];
}
您遇到的问题是match
在没有匹配时返回null
,但是您尝试通过对其应用[1]
来将其视为对象 - 导致一个错误。通过获得结果并确保其不是假的(如上所述),如果结果不是[1]
,则仅使用null
。