为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中提取(“get”)一个数字

从字符串中提取(“get”)一个数字

料青山看我应如是 2019-07-11 15:53:07
从字符串中提取(“get”)一个数字我在javascript中有一个字符串,类似于‘#box2’,我只想从其中得到‘2’。试过:var thestring = $(this).attr('href');var thenum = thestring.replace( /(^.+)(\w\d+\w)(.+$)/i,'$2');alert(thenum);它仍然在警报中返回#box 2,我如何使它工作?它需要容纳任何长度的数字附加在末端。
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

对于这个具体的例子,

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

在一般情况下:

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

由于这个答案由于某种原因而变得流行起来,这里有一个好处:regex生成器。

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>


查看完整回答
反对 回复 2019-07-11
?
12345678_0001

TA贡献1802条经验 获得超5个赞

您应该尝试以下方法:

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

结果

1234561613213213


查看完整回答
反对 回复 2019-07-11
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

我认为这个正则表达式将达到您的目的:

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

哪里txt是你的绳子。

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

我认为您也可以通过使用以下方法来实现相同的目标:

var num = txt.replace(/\D/g,'');


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信