如何仅从字母数字字符串中提取字母表

rex*_*rex 7 javascript jquery

我有一个字符串"5A"或"a6".我想在结果上只获得"A"或"a".我使用以下但它不起作用.

使用Javascript

 var answer = '5A';
 answer = answer.replace(/^[0-9]+$/i);
 //console.log(answer) should be 'A';
Run Code Online (Sandbox Code Playgroud)

Tre*_*xon 17

 var answer = '5A';
 answer = answer.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

g对于全局,没有^$,并且无需''替换它.离开第二个参数会将其替换为字符串'undefined'.

我想知道这样的事情是否会更快,但它和变化要慢得多:

function alphaOnly(a) {
    var b = '';
    for (var i = 0; i < a.length; i++) {
        if (a[i] >= 'A' && a[i] <= 'z') b += a[i];
    }
    return b;
}
Run Code Online (Sandbox Code Playgroud)

http://jsperf.com/strip-non-alpha


and*_*lrc 16

var answer = '5A';
answer = answer.replace(/[^a-z]/gi, '');
// [^a-z] matches everything but a-z
// the flag `g` means it should match multiply occasions
// the flag `i` is in case sensitive which means that `A` and `a` is treated as the same character ( and `B,b`, `C,c` etc )  
Run Code Online (Sandbox Code Playgroud)


Aeg*_*gis 5

var answer = '5A';
answer = answer.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

如果您关心性能,您也可以不使用正则表达式来完成此操作;)

您的代码有多个问题:

一般来说,我建议您学习一些基本的正则表达式。这是一个有用的应用程序可以与它们一起玩: http: //rubular.com/