javascript - 从字符串中提取数字值

标签 javascript regex

所以我需要从字符串中提取一个数字值。我目前有一个可行的解决方案,但我觉得也许我可以使用正则表达式或其他东西来改进它。

这是我的解决方案

var subject = "This is a test message [REF: 2323232]";

if(subject.indexOf("[REF: ") > -1){
  var startIndex = subject.indexOf("[REF: ");
  var result = subject.substring(startIndex);
  var indexOfLastBrace = result.indexOf("]");
  var IndexOfRef = result.indexOf("[REF: ");
  var ticketNumber = result.substring(IndexOfRef + 6, indexOfLastBrace);

  if(!isNaN(ticketNumber)){
    console.log("The ticket number is " + ticketNumber)
    console.log("Valid ticket number");
  }
  else{
    console.log("Invalid ticket number");
  }
}

如您所见,我正在尝试从“[REF:”字符串之后提取数字值。

最佳答案

// Change of the text for better test results
var subject = "hjavsdghvwh jgya 16162vjgahg451514vjgejd5555v fhgv f 262641hvgf 665115bs cj15551whfhwj511";
var regex = /\d+/g;
let number = subject.match( regex )
console.log(number)

它会暂时返回数组,如果找不到匹配项,它将返回 null。 在大多数情况下,当我使用这个正则表达式时,我会得到完美的结果,除非字符串包含十进制值。

关于javascript - 从字符串中提取数字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832367/

相关文章:

javascript - 在服务器端调用 gRPC 流的 .end() 之前,如何在客户端接收数据

regex - 排除正则表达式 bash 脚本

regex - 在 `find` 中工作的正则表达式

java - 任何带有回车符的字符

regex - 将匹配的 Perl 正则表达式保存为变量

java - Hibernate Validator(如何只接受4个字母和10个数字)

javascript - 实时javascript到服务器连接

javascript - React.js,ES6,如何访问ES6类中的react-router Lifecycle?

javascript - 如何通过变量引用父对象?

javascript - 新行之前的正则表达式检查字符不起作用