gpt4 book ai didi

javascript - 将字符串与正则表达式匹配会给出 null,即使它应该匹配

转载 作者:行者123 更新时间:2023-11-29 17:05:51 26 4
gpt4 key购买 nike

我试图让我的正则表达式在 JavaScript 中工作,但我遇到了问题。

代码:

var reg = new RegExp('978\d{10}');
var isbn = '9788740013498';
var res = isbn.match(reg);

console.log(res);

但是,res 在控制台中始终为 null

这很有趣,因为正则表达式应该可以工作。

我的问题:那么,匹配字符串和正则表达式的正确语法是什么?

(如果它很重要并且可以在环境中有任何发言权:此代码取自 app.get 在我的 中用 Express.js 制作的 View Node.js 应用)

最佳答案

因为您正在使用字符串来构建正则表达式,所以您需要对 \ 进行转义。它目前正在努力转义不需要转义的 d

如果您在 chrome 控制台上创建正则表达式,您可以看到会发生什么:

new RegExp('978\d{10}');
// => /978d{10}/

请注意,没有 \d,只有 d,因此您的正则表达式匹配 978dddddddddd。也就是说,文字 'd' 字符重复了 10 次。

您需要使用 \\ 在您构建正则表达式的字符串中插入文字 \:

var reg = new RegExp('978\\d{10}'); 
var isbn = '9788740013498';
var res = isbn.match(reg);

console.log(res)

// => ["9788740013498", index: 0, input: "9788740013498"]

关于javascript - 将字符串与正则表达式匹配会给出 null,即使它应该匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com