gpt4 book ai didi

javascript - 无效量词错误

转载 作者:行者123 更新时间:2023-11-30 17:26:03 25 4
gpt4 key购买 nike

我尝试在 javascript 中应用正则表达式,但收到以下错误 Syntax Error: invalid quantifier

(?x)^(?:https?://)?
(?:(?:(?:www\.|m\.)?soundcloud\.com/
(?P<uploader>[\w\d-]+)/
(?!sets/)(?P<title>[\w\d-]+)
)
)

这是一个使用相同正则表达式的示例

var regex = '(?x)^(?:https?://)?(?:(?:(?:www\.|m\.)?soundcloud\.com/(?P<uploader>[\w\d-]+)/(?!sets/)(?P<title>[\w\d-]+)))';
var url = 'https://soundcloud.com/lordemusic/tennis-court';
var match = url.match(regex);
console.log(match);

根据 javascript regex linter,它说 Unexpected character "x"after "?"

导致错误的原因是什么?如何更改正则表达式以使其正常工作?此外,如果命名捕获组导致错误,我该如何用数字索引替换命名捕获组?

最佳答案

您的正则表达式有几个“ flavor ”问题。

  • 自由间距模式 (?x) 在 JavaScript 中不可用
  • JavaScript 不支持命名捕获

这将是一个在 JavaScript 中有效的紧密转换:

这里有一些 JavaScript 代码可以让您开始检索组的内容(参见在线 demo)。

<script>
var subject = 'https://soundcloud.com/lordemusic/tennis-court';
var regex = /^(?:https?:\/\/)?(?:(?:(?:www\.|m\.)?soundcloud\.com\/([\w\d-]+)\/(?!sets\/)([\w\d-]+)))/i;
var match = regex.exec(subject);
if (match != null) {
var group1 = match[1];
var group2 = match[2];
document.write(group1, "<br>");
document.write(group2, "<br>");
} else {
result = "";
}

</script>

关于javascript - 无效量词错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259316/

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