使用Javascript搜索字符串并返回下一个字符串

时间:2018-12-01 03:44:35

标签: javascript

我收到来自描述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的字符串响应中解决问题?

2 个答案:

答案 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}`)