使用javascript从字符串中分离字母字符

使用javascript从字符串中分离字母字符,javascript,jquery,Javascript,Jquery,我正在从事一个javascript项目,遇到了一个问题 我有这样的值:1231+,83749M,123199B 我只能通过以下操作获得数值/数字: var theNumber = parseInt(1231+); 但是我如何才能得到像:+,M,B这样的尾随字符呢?我不能使用子字符串,因为可以有多个字符。但是字符将始终处于跟踪状态。使用正则表达式: 表达式为:[\d] 获取所有非数字字符 代码示例 $(document).ready(function() { var elem = '12

我正在从事一个javascript项目,遇到了一个问题
我有这样的值:
1231+,83749M,123199B
我只能通过以下操作获得数值/数字:

var theNumber = parseInt(1231+);

但是我如何才能得到像:
+,M,B这样的尾随字符呢?我不能使用子字符串,因为可以有多个字符。但是字符将始终处于跟踪状态。

使用正则表达式:

表达式为:
[\d]

获取所有非数字字符

代码示例

$(document).ready(function() {
    var elem = '1234+';
    alert(elem.replace(/\d/g, ''));
});

//Result +

可以使用正则表达式。 例如:

var string = "1234+";
var regexp = /([0-9]+)(.*)/;
var result = regexp.exec(string);
结果将是:

[ '1231+',
  '1231',
  '+',
  index: 0,
  input: '1231+' ]
因此,
result[1]
将是您的号码,
result[2]
将是您的后缀

var orig = "1231+";
var theNumber = parseInt(orig);
var theChar = orig.replace(theNumber, "");
将“1231+”中的“1231”替换为“leaves”+”

尝试以下代码

var n1 = "234234M",
    n2 = "6546D",
    n3 = "4455+";
alert(n1.replace(parseInt(n1), ""));
alert(n2.replace(parseInt(n2), ""));
alert(n3.replace(parseInt(n3), ""));

如果你关心的是<强>尾随字符,如果字符串中间有字母字符,则不用担心,你可以使用这个正则表达式-/p>

[^\d]*$
一个方便的正则表达式测试工具是

考虑到我们有一个模式,我们现在可以匹配-

var foo = '1231+';
var trailers = foo.match(/[^\d]*$/);
console.log(trailers);

值得解释一下用户如何使用正则表达式。给出一个代码示例,说明如何将其付诸实践。唯一的问题是,在字符串的中间也可能有一个字符,看起来OP可能不需要。非常感谢。不客气。(我自己也喜欢regex,但对于这样的东西来说,这太过分了。)