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