我收到来自描述API的字符串形式的响应,我以此方式进行验证:
let product = 'Producto:';
let text = jsonDesc.plain_text;
console.log(typeof text);
响应= String
console.log(text)
响应= Producto: Mesa con 4 sillas para todo tipo de restaurante, bar, cafetería, cocina y negocios en general.
所以我正在寻找一个像这样的特定单词:
let product = 'Producto:';
let resultProduct = text.match(new RegExp(product + '\\s(\\w+)'))[1];
但是它会在控制台上返回以下消息:
**Uncaught (in promise) TypeError: Can not read property '1' of null**
但是如果我用硬编码的字符串这样做:
let textTest = "Producto: Pack de 4 Sillas para bar.";
let resultProduct = textTest.match(new RegExp (textTest + '\\s(\\w+)')) [1];
console.log (resultProduct);
'包装'是正确的!
你知道是什么原因吗?以及如何从API的字符串响应中解决问题?
答案 0 :(得分:2)
这似乎对我有用:
const jsonDesc = {
plain_text: 'Producto: Mesa con 4 sillas para todo tipo de restaurante, bar, cafetería, cocina y negocios en general.'
}
let text = jsonDesc.plain_text;
console.log(`typeof text: ${typeof text}`);
const product = 'Producto:';
const resultProduct = text.match(new RegExp(product + '\\s(\\w+)'))[1];
console.log(`resultProduct: ${resultProduct}`)
答案 1 :(得分:2)
您说: 您知道如何返回以下单词以找到终点吗?
我不确定,但这可能就是您所追求的。它返回:
con 4 sillas para todo tipo de restaurante, bar, cafetería, cocina y negocios en general.
const jsonDesc = {
plain_text: 'Producto: Mesa con 4 sillas para todo tipo de restaurante, bar, cafetería, cocina y negocios en general.'
}
let text = jsonDesc.plain_text;
console.log(`typeof text: ${typeof text}`);
const product = 'Producto:';
const resultProduct = text.match(new RegExp(product + '\\s(\\w+)'))[1];
console.log(`resultProduct: ${resultProduct}`)
const afterThatPart = text.split(resultProduct)[1].trim()
console.log(`afterThatPart: ${afterThatPart}`)