我有一个字符串“5A”或“a6”。我只想得到“A”或“a”的结果。我正在使用以下内容,但它不起作用。
Javascript
var answer = '5A';
answer = answer.replace(/^[0-9]+$/i);
//console.log(answer) should be 'A';
我有一个字符串“5A”或“a6”。我只想得到“A”或“a”的结果。我正在使用以下内容,但它不起作用。
Javascript
var answer = '5A';
answer = answer.replace(/^[0-9]+$/i);
//console.log(answer) should be 'A';
var answer = '5A';
answer = answer.replace(/[^a-z]/gi, '');
// [^a-z] matches everything but a-z
// the flag `g` means it should match multiple 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';
answer = answer.replace(/[^A-Za-z]/g, '');
g
对于全局, no ^
or $
,并将''
其替换为空。省略第二个参数会将其替换为字符串'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;
}
你问的方式,你想找到字母而不是删除数字(在这个例子中是一样的,但根据你的情况可能会有所不同) - 如果这是你想要的,你可以选择不同的路径:
var answer = "5A";
var match = answer.match(/[a-zA-Z]/);
answer = match ? match[0] : null;
它在字母上查找匹配项,而不是删除数字。如果找到匹配项,则match[0]
表示第一个字母,否则match
为空。
var answer = '5A';
answer = answer.replace(/[0-9]/g, '');
如果您关心性能,也可以不使用正则表达式;)
您编写了多个问题的代码:
string.replace
带两个参数:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replacei
代表的 flagcase insensitive
没有意义,因为您正在处理数字(什么是大写的 1?!)/^[0-9]+$/
只会匹配一个数字,仅此而已。你应该看看这个:http ://www.regexper.com/ 。在框中输入您的正则表达式(不带斜杠),然后按 Enter!一般来说,我建议你学习一些基本的正则表达式。这是一个与他们一起玩的有用应用程序:http ://rubular.com/
JavaScript: 它将从任何字符串中提取所有字母..
var 答案 = '5A'; answer = answer.replace(/[^a-zA-Z]/g, '');
/*var answer = '5A';
answer = answer.replace(/[^a-zA-Z]/g, '');*/
$("#check").click(function(){
$("#extdata").html("Extraxted Alphabets : <i >"+$("#data").val().replace(/[^a-zA-Z]/g, '')+"</i>");
});
i{
color:green;
letter-spacing:1px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="text" id="data">
<button id="check">Click To Extract</button><br/>
<h5 id="extdata"></h5>
</div>
\d
您可以使用(digit) 而不是简化@TrevorDixon 和@Aegis 的答案[0-9]
var answer = '5A';
answer = answer.replace(/\d/g, '');