在javascript中查找字符串之前或之后没有任何字母的数字

Find numbers in a string not preceded or followed by any letters in javascript

本文关键字:任何字 数字 或之后 javascript 查找 字符串      更新时间:2023-09-26

我不太熟悉正则表达式。我想弄清楚如何找到一个数字在字符串之前或之后没有一个字母与javascript

s= "sc010sc"
//shouldnt return 
s = "x0001"
//shouldnt return 
s = "thing_0001_5642"
//return [0001, 5642]

s = "05012"
//return 05012

可以使用

var rx = /(?:^|[^a-z0-9])('d+)(?![0-9a-z])/ig;
var s = "thing_0001_5642";// with "sc010sc" it does not return any result
var res = [];
while((m=rx.exec(s)) !== null) {
	res.push(m[1]);
}
console.log(res);

<

模式细节/strong>:

  • (?:^|[^a-z0-9]) -字符串开头或非数字和非字母
  • ('d+) -组1捕获1个或多个数字
  • (?![0-9a-z]) -后面没有数字或字母。

由于使用了/i修饰符,所以所有ASCII字母都与[a-z]匹配。

由于我们需要访问捕获的值,因此我在循环中使用RegExp#exec仅获取match[1]值。