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

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

我在javascript中有一个字符串,类似于‘#box2’,我只想从其中得到‘2’。

试过:

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

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

它需要容纳任何长度的数字附加在末端。


料青山看我应如是
浏览 429回答 3
3回答

MYYA

对于这个具体的例子,&nbsp;var&nbsp;thenum&nbsp;=&nbsp;thestring.replace(&nbsp;/^\D+/g,&nbsp;'');&nbsp;//&nbsp;replace&nbsp;all&nbsp;leading&nbsp;non-digits&nbsp;with&nbsp;nothing在一般情况下:&nbsp;thenum&nbsp;=&nbsp;"foo3bar5".match(/\d+/)[0]&nbsp;//&nbsp;"3"由于这个答案由于某种原因而变得流行起来,这里有一个好处:regex生成器。function getre(str, num) {&nbsp; if(str === num) return 'nice try';&nbsp; var res = [/^\D+/g,/\D+$/g,/^\D+|\D+$/g,/\D+/g,/\D.*/g, /.*\D/g,/^\D+|\D.*$/g,/.*\D(?=\d)|\D+$/g];&nbsp; for(var i = 0; i < res.length; i++)&nbsp; &nbsp; if(str.replace(res[i], '') === num)&nbsp;&nbsp; &nbsp; &nbsp; return 'num = str.replace(/' + res[i].source + '/g, "")';&nbsp; return 'no idea';};function update() {&nbsp; $ = function(x) { return document.getElementById(x) };&nbsp; var re = getre($('str').value, $('num').value);&nbsp; $('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>

12345678_0001

您应该尝试以下方法:var&nbsp;txt&nbsp;=&nbsp;"#div-name-1234-characteristic:561613213213";var&nbsp;numb&nbsp;=&nbsp;txt.match(/\d/g);numb&nbsp;=&nbsp;numb.join("");alert&nbsp;(numb);结果1234561613213213

慕莱坞森

我认为这个正则表达式将达到您的目的:var&nbsp;num&nbsp;=&nbsp;txt.replace(/[^0-9]/g,'');哪里txt是你的绳子。它基本上是从任何不是数字的东西上撕下来的。我认为您也可以通过使用以下方法来实现相同的目标:var&nbsp;num&nbsp;=&nbsp;txt.replace(/\D/g,'');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript