我做了一些研究,似乎找不到办法做到这一点。我甚至尝试使用for循环遍历字符串并尝试使用函数isLetter()
和charAt(
)。
我有一个字符串,例如街道地址:
var streetAddr = "45 Church St";
我需要一种方法来遍历字符串并找到该字符串中的第一个字母。在此之后,我需要在其他地方使用该角色。对于上面的例子,我需要函数返回 C 的值。这样做的好方法是什么?
答案 0 :(得分:8)
也许是最简短的解决方案之一:
'45 Church St'.match(/[a-zA-Z]/).pop();
如果字符串中没有字母数字字符,match
将返回null
,您可以将其转换为以下傻瓜式解决方案:
('45 Church St'.match(/[a-zA-Z]/) || []).pop();
答案 1 :(得分:7)
只需检查字符是否在A-Z或a-z
范围内function firstChar(inputString) {
for (var i = 0; i < inputString.length; i += 1) {
if ((inputString.charAt(i) >= 'A' && inputString.charAt(i) <= 'Z') ||
(inputString.charAt(i) >= 'a' && inputString.charAt(i) <= 'z')) {
return inputString.charAt(i);
}
}
return "";
}
console.assert(firstChar("45 Church St") === "C");
console.assert(firstChar("12345") === "");
答案 2 :(得分:6)
可以使用match
"45 Church St".match(/[a-z]/i)[0]; // "C"
答案 3 :(得分:0)
此代码示例应完成工作。
function numsNletters(alphanum) {
firstChar=alphanum.match(/[a-zA-Z]/).pop();
numsLetters=alphanum.split(firstChar);
numbers=numsLetters[0];
// prepending the letter we split on (found with regex at top)
letters=firstChar+numsLetters[1];
return numbers+'|'+letters;
}
numsNletters(“ 123abc”); //返回“ 123 | abc”;