我有一个JavaScript字符串(例如,#box2),我只是想从它的2。

我试着:

var thestring = $(this).attr('href');
var thenum = thestring.replace(/(^.+)(\w\d+\w)(.+$)/i, '$2');
alert(thenum);

它仍然在警告中返回#box2。我怎样才能让它工作呢?

它需要适应任何长度的数字附着在末端。


当前回答

在我的一个项目中,我必须从字符串中获取一个评级值。这是我使用的:

let text = '#xbox2'
let num = text.trim().
  split('').
  map(num => Number(num)).
  filter(x => Number.isInteger(x))

其他回答

使用正则表达式,如何从字符串中获取数字,例如:

String myString = "my 2 first gifts were made by my 4 brothers";
myString = myString.replaceAll("\\D+", "");
System.out.println("myString: " + myString);

myString的结果是“24”。

您可以在http://ideone.com/iOCf5G上看到此运行代码的示例。

使用匹配函数。

var thenum = “0a1bbb2”.match(/\d+$/)[0]; console.log(thenum);

无正则表达式的:

没有正则表达式 函数提取数字(字符串) { let numArray = string.split('').map(item => { if (typeof +item === 'number' && !isNaN(+item)) 退货 +商品 }) return +numArray.join('') } 提取数字('@1200milion$') // 1200

要从字符串返回int,可以执行以下代码。它删除所有非数字字符并返回一个整数。

Number("strin[g]3".replace(/\D+/g, ""))

在我的一个项目中,我必须从字符串中获取一个评级值。这是我使用的:

let text = '#xbox2'
let num = text.trim().
  split('').
  map(num => Number(num)).
  filter(x => Number.isInteger(x))