我正在开发一个javascript项目并遇到了问题。
我有这样的价值观:1231+, 83749M, 123199B
我只能通过这样做得到数值/数字:
var theNumber = parseInt(1231+);
但是我怎样才能得到像+, M, B
这样的尾随字符?我不能使用子字符串,因为可以有多个字符。但是角色总会在路上。
答案 0 :(得分:6)
var orig = "1231+";
var theNumber = parseInt(orig);
var theChar = orig.replace(theNumber, "");
更换" 1231" in" 1231 +"用""离开" +"。
答案 1 :(得分:1)
使用正则表达式:
表达方式为:[\d]
获取所有非数字字符。
代码示例
$(document).ready(function() {
var elem = '1234+';
alert(elem.replace(/\d/g, ''));
});
//Result +
答案 2 :(得分:1)
您可以使用正则表达式。 像这样的Somhow:
var string = "1234+";
var regexp = /([0-9]+)(.*)/;
var result = regexp.exec(string);
结果将是:
[ '1231+',
'1231',
'+',
index: 0,
input: '1231+' ]
因此,result[1]
将是您的号码,result[2]
是您的后缀。
答案 3 :(得分:1)
如果您关注的是尾随字符,并且不担心字符串中间是否有字母字符,那么您可以使用此正则表达式 -
[^\d]*$
正则表达式测试的一个方便工具是http://regexpal.com/
鉴于我们有一个模式,我们现在可以匹配 -
var foo = '1231+';
var trailers = foo.match(/[^\d]*$/);
console.log(trailers);
答案 4 :(得分:0)
试试此代码
var n1 = "234234M",
n2 = "6546D",
n3 = "4455+";
alert(n1.replace(parseInt(n1), ""));
alert(n2.replace(parseInt(n2), ""));
alert(n3.replace(parseInt(n3), ""));