我有一个功能来比较插入的数据与图像内的原始数据,我们使用谷歌视觉OCR来提取文本。
OCR将为您提供每个块的结果
所以它会给你一个数组结果
const result = [
{
text: This is the first block
},
{
text: This is the second block
},
{
text: Created on 20 September 2021
},
]
我的问题是,我怎样才能得到日期(2021年9月20日)?所以我可以对插入的数据进行比较。
我对循环和正则表达式做了一些逻辑分析,但我仍然无法完成,因为我仍然需要了解正则表达式,我花了一天的时间来学习这个正则表达式。
我只是想,需要比较的图像在日期上并不一致。
也许我会找到日期只有区块(没有任何文字,它只是显示日期),< BR>或日期是分开的空间(2021年9月20日),
或日期是分开的短跑(20月9日-2021),
或日期是分开的斜线(20 /九月/ 2021),
或日期月使用数字(20-092021)。
重要的是,日期结构并不总是相同的。
在这种情况下,我将插入的数据与证书映像进行比较。
因此,如果我能得到日期,我将使用momentjs()使日期成为一致的日期格式。格式()
我想就这些了,谢谢。
根据您的预期输入,这里有一些RegExp将工作:
let regex = /\d{1,2}(-| |\/)(\w{3,9}|\d{1,2})(-| |\/)\d{2,4}/;
const inputs = ['some random text: 20 September 2020', '20/September/2020', '20-September-20', '20/09/2020', '20 Sep 20', '20-09-2020'];
for(const input of inputs){
console.log(input.match(regex)[0]);
}