gpt4 book ai didi

javascript - 正则表达式在 JavaScript 中产生不同的结果

转载 作者:行者123 更新时间:2023-11-28 20:50:38 25 4
gpt4 key购买 nike

为什么这个正则表达式在 javascript 中返回与在线正则表达式测试器完全不同的结果(可在 http://www.gskinner.com/RegExr/ 找到)

var patt = new RegExp(/\D([0-9]*)/g);
"/144444455".match(patt);

控制台中的返回是:

["/144444455"]

虽然它确实在正则表达式测试器中返回了正确的组。

我想做的就是提取一段文本中的第一个金额。不管该文本是否以“/”开头或包含一堆其他无用信息。

最佳答案

正则表达式完全按照您的指示执行:

  • \D 匹配非数字(在本例中为 /)
  • [0-9]* 匹配数字字符串 (144444455)

您将需要访问第一个捕获组的内容:

var match = patt.exec(subject);
if (match != null) {
result = match[1];
}

或者干脆完全删除 \D - 我不知道为什么你认为你首先需要它......

然后,如果您只想匹配第一个数字,而不是文本中的所有数字,则可能应该删除 /g 修饰符。所以,

result = subject.match(/\d+/);

应该也能正常工作。

关于javascript - 正则表达式在 JavaScript 中产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515040/

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