如何在Javascript中将搜索结果限制在正则表达式中一次 const EXPECTEDSELLERID=res.data.match( /数据\-预期\-卖方\-id=([\s\s]*?)\/g ); /* 返回以下结果: [ '数据预期卖方id=25543745', '数据预期卖方id=25543745' ] */

如何在Javascript中将搜索结果限制在正则表达式中一次 const EXPECTEDSELLERID=res.data.match( /数据\-预期\-卖方\-id=([\s\s]*?)\/g ); /* 返回以下结果: [ '数据预期卖方id=25543745', '数据预期卖方id=25543745' ] */,javascript,regex,Javascript,Regex,上面的正则表达式返回搜索的字符串两次,因为它在原始字符串中可用两次 有没有办法只返回一次?您可以尝试以下方法: const EXPECTEDSELLERID = res.data.match.match( /\b(data\-expected\-seller\-id=([\s\S]*?))\ \b/g ); /* console.log(EXPECTEDSELLERID ) // ["data-expected-seller-id=2554543745 "] *

上面的正则表达式返回搜索的字符串两次,因为它在原始字符串中可用两次

有没有办法只返回一次?

您可以尝试以下方法:

const EXPECTEDSELLERID = res.data.match.match(
    /\b(data\-expected\-seller\-id=([\s\S]*?))\ \b/g
  );

/* console.log(EXPECTEDSELLERID ) // ["data-expected-seller-id=2554543745 "] */

如果不需要访问捕获的值,请删除
g
标志和捕获组。然后它返回完整的字符串(这是HTML源代码)以及数组中的结果,加上
groups:undefined
您没有正确使用它,
const EXPECTEDSELLERID=res.data.match(/data expected seller id=(\S+/)[0]
@WiktorStribiżew我现在拿到了,它正在工作。我在正则表达式方面不是很有效率,而且还在学习。谢谢你的及时帮助。