Javascript 如何仅从字母数字字符串中提取字母
我有一个字符串“5A”或“a6”。我只想得到结果的“A”或“A”。我正在使用以下工具,但它不起作用 JavascriptJavascript 如何仅从字母数字字符串中提取字母,javascript,jquery,Javascript,Jquery,我有一个字符串“5A”或“a6”。我只想得到结果的“A”或“A”。我正在使用以下工具,但它不起作用 Javascript var answer = '5A'; answer = answer.replace(/^[0-9]+$/i); //console.log(answer) should be 'A'; g用于全局,不使用^或$,并使用'将其替换为零。不使用第二个参数将其替换为字符串'undefined' 我想知道这样的东西是否会更快,但它和变体的速度要慢得多: function a
var answer = '5A';
answer = answer.replace(/^[0-9]+$/i);
//console.log(answer) should be 'A';
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;
}
仅限字母功能(a){
var b='';
对于(变量i=0;i='a'&&a[i]
如果您关心性能,也可以不使用正则表达式来实现;)
您可以编写多个问题的代码:
string.replace
采用两个参数:
- 标志
i
,代表不区分大小写
,因为您处理的是数字(大写1是什么?!)
/^[0-9]+$/
将只匹配一个数字,仅此而已。您应该检查此项:。在框中输入您的正则表达式(不带斜杠),然后按Enter键
一般来说,我建议您学习一些基本正则表达式。这里有一个有用的应用程序可以使用它们:您可以使用\d
(数字)而不是[0-9]
简化一些@TrevorDixon和@Aegis的答案
var answer = '5A';
answer = answer.replace(/\d/g, '');
按照您的提问方式,您希望找到字母而不是删除数字(本例中的情况相同,但根据您的情况可能有所不同)-如果这是您想要的,您可以选择不同的路径:
var answer = "5A";
var match = answer.match(/[a-zA-Z]/);
answer = match ? match[0] : null;
它在字母上查找匹配项,而不是删除数字。如果找到匹配项,则match[0]
将表示第一个字母,否则match
将为空。
var answer = '5A';
answer = answer.replace(/[^a-zA-Z]/g, '');
单击以提取
这里添加的是g
标志,它代表globalPlease链接,而不是@Oriol I love MDN,不用担心,我只是选择了我找到的第一个链接,参数的描述是正确的;这是我需要做的一切show@Aegis,每个链接都有助于他们在谷歌中保持领先地位。@Oriol,讽刺的是,你链接到了邪恶的网站!@TrevorDixon哈哈,它是有意帮助人们比较这两个文档,发现MDN更完整。没有必要发布另一个答案,这不会给现有的答案带来任何新的东西。这非常优雅。有趣的是,有时最好的答案几乎是最新的。这是唯一一个总是都是*c的答案确实,用户要求在特定的字符串中只找到数字(s)和空格或其他字母,但还可以在“B f,7945 A”上运行,得到“B f,A”,而不是更希望的“BFA”。因此,我认为这个答案更为迅速,从不欺骗。
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 )
var answer = "5A";
var match = answer.match(/[a-zA-Z]/);
answer = match ? match[0] : null;
var answer = '5A';
answer = answer.replace(/[^a-zA-Z]/g, '');