我对正则表达式非常陌生,我不确定如何使用正则表达式从非常大的字符串中提取一段测试。
假设字符串是这样的: 仅供引用:该字符串将动态生成,从数据库和 dom 中提取不同的元素。我对它的创建方式没有太多控制。
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas architecto dicta amet cumque, atque, labore eos nobis earum fuga tempore officiis excepturi rerum placeat. Perferendis, earum officiis veniam dicta eius aliquid, similique porro quam necessitatibus nobis velit debitis.
<span itemprop="itemNum">56789</span>
labore eos nobis earum fuga tempore officiis excepturi rerum placeat. Perferendis, earum officiis veniam dicta eius aliquid, similique porro quam necessitatibus nobis velit debitis.
我需要获取包含 itemprop 标记为 itemNum 的 span 内的文本。
我尝试过这个,但它对我不起作用:
/\b(itemprop=\"sku\"")\b/g
最终我的变量中只有 56789。
提前谢谢大家。
最佳答案
如果您不一定必须使用正则表达式,则达到获取值目标的一种方法是使用 DOMParser 首先解析字符串,然后使用例如 querySelect
:
const str = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas architecto dicta amet cumque, atque, labore eos nobis earum fuga tempore officiis excepturi rerum placeat. Perferendis, earum officiis veniam dicta eius aliquid, similique porro quam necessitatibus nobis velit debitis. <span itemprop="itemNum">56789</span> labore eos nobis earum fuga tempore officiis excepturi rerum placeat. Perferendis, earum officiis veniam dicta eius aliquid, similique porro quam necessitatibus nobis velit debitis.';
const parser = new DOMParser();
const doc = parser.parseFromString(str, "text/html");
console.log(doc.querySelector('span[itemprop="itemNum"]').innerHTML)
关于javascript - 如何在javascript中使用正则表达式来匹配带双引号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54380774/