2014-02-25 238 views
0

我有一个变量的值是03_ButtonAdd。我想从中删除_ButtonAdd。意味着我只想要数字值。如何在JavaScript中做到这一点。?如何从javascript中的字符串中删除子字符串?

+0

变量或值? –

+1

[MDN String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)这是一个非常基本的问题,它很容易找到答案。显示一些努力。 –

回答

0

试试这个:

'03_ButtonAdd'.replace('_ButtonAdd', ''); 
// returns: '03' 

String.prototype.replace文档。

假设:

var s = '03_ButtonAdd'; 

更多一些其他的方法应该是:

s.substring(0,2); 
parseInt(s, 10) // returns `3`, not `'03'` 
/\d+/.exec(s)[0]; // Regex -> get all digits. 

而一些比较难看/低效的替代品(不要使用这些):

s.split('_')[0]; // Split at _, get first index of array. 

var out = ''; 
for(var i = 0; i < s.length; i++){ 
    if(isFinite(s[i])){ 
     out += s[i]; 
    } 
}    // Seriously, now I'm just messing around, don't use this. 
+1

世界上是如何丑陋和低效的正则表达式? Yikes – epascarello

+0

等一下,你以为'parseInt'会返回'NaN'。突然它被添加到你的答案。严肃地说,如果你刚刚从别人身上学到了新东西,就不要从他们身上偷走它。 –

+0

@cookiemonster:我弄乱了我的变量。这就是为什么它返回NaN – Cerbrus

0

你可以使用substring()函数中的起始和终止点来收集字符串。像

var str = "03_ButtonAdd"; 
var result = str.substring(0, 2); 
//rsult is 03 
+1

为什么downvote请解释一下? –

+0

@downvoter请看看。 –

-1

拼抢数作为一个字符串

var str = "03_ButtonAdd"; 
var numStr = str.match(/(\d+)/)[0]; //"03" 

,如果你真的想要的号码,你可以使用parseInt函数

var num = parseInt(str, 10); //3 
+0

为什么我今天一直在降低音量?在旧问题上爱神秘降临,尤其是在选定的答案在错误之后复制了我的解决方案的情况下。 – epascarello

相关问题