当前位置: 首页 > 知识库问答 >
问题:

如何在JavaScript中从字符串中提取数字?

李光华
2023-03-14

我有一个JavaScript字符串(例如#box2),我只想从中得到2

我试过:

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

它仍然在警报中返回#box 2,我如何让它工作?

它需要适应任何长度数字附加在结束。

共有3个答案

史涵育
2023-03-14

我认为这个正则表达式可以满足您的目的:

var num = txt.replace(/[^0-9]/g,'');

其中txt是您的字符串。

基本上,它会撕下任何不是数字的东西。

我认为你也可以通过使用这个来实现同样的目标:

var num = txt.replace(/\D/g,'');
扶冠宇
2023-03-14

您应该尝试以下方法:

var txt = "#div-name-1234-characteristic:561613213213";
var numb = txt.match(/\d/g);
numb = numb.join("");
alert (numb);​

后果

1234561613213213
红弘盛
2023-03-14

对于这个具体的例子,,

 var thenum = thestring.replace( /^\D+/g, ''); // replace all leading non-digits with nothing

在一般情况下:

 thenum = "foo3bar5".match(/\d+/)[0] // "3"

由于某种原因,这个答案很受欢迎,这里有一个额外的好处:正则表达式生成器。

function getre(str, num) {
  if(str === num) return 'nice try';
  var res = [/^\D+/g,/\D+$/g,/^\D+|\D+$/g,/\D+/g,/\D.*/g, /.*\D/g,/^\D+|\D.*$/g,/.*\D(?=\d)|\D+$/g];
  for(var i = 0; i < res.length; i++)
    if(str.replace(res[i], '') === num) 
      return 'num = str.replace(/' + res[i].source + '/g, "")';
  return 'no idea';
};
function update() {
  $ = function(x) { return document.getElementById(x) };
  var re = getre($('str').value, $('num').value);
  $('re').innerHTML = 'Numex speaks: <code>' + re + '</code>';
}
<p>Hi, I'm Numex, the Number Extractor Oracle.
<p>What is your string? <input id="str" value="42abc"></p>
<p>What number do you want to extract? <input id="num" value="42"></p>
<p><button onclick="update()">Insert Coin</button></p>
<p id="re"></p>
 类似资料:
  • 问题内容: 我将提取字符串中包含的所有数字。哪个更适合pur 例: 结果: 问题答案: 如果只想提取正整数,请尝试以下操作: 我认为这比正则表达式示例更好,原因有三点。首先,你不需要其他模块;其次,它更具可读性,因为你无需解析迷你语言;第三,它更快(因此可能更): 这将无法识别浮点数,负整数或十六进制格式的整数。如果你不能接受这些限制,则可以通过以下亭亭玉立的答案解决问题。

  • 问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案:

  • 问题内容: 我是新手,我有一个字符串,我想从字符串中提取数字。例如: 输出为 我只想获取一个整数,而不是列表。 问题答案: 您可以使用方法按 数字 字符串,

  • 我有一个像下面给出的字符串: 4天:10000 我想从这个字符串中提取值10000,并在jquery中显示它。有人能说怎么做吗?

  • 我有以下格式的字符串: 让str=“url(#123456)”; 我的字符串中只有数字。它可以在任何地方。我想从上面的字符串中提取数字。 我正在使用es6。

  • 我正在写一个应用程序,根据该应用程序,你将被发送一条短信,其中包含一个重置代码,以确认你是该帐户的所有者。。但是我正在尝试以这样一种方式构建应用程序:它接收接收到的短信的广播,并仅从短信正文中获取指定的整数。我们注意到你想要重置密码的短信示例。密码重置代码是3242。,谢谢 我只想从整个短信正文中获取重置代码=3242。。谢谢