我正在尝试使用以下代码针对字符串中的单个字符测试正则表达式:
我尝试使用String.prototype.match方法以及RegEx.test方法来执行此操作,但无济于事。
输入示例为“ HELLO124”。 我希望控制台记录所有大写字母,但不要记录其他任何内容。
function rot13(str) {
let regex = /[A-Z]/;
for (let i = 0; i < str.length; i++) {
if (regex.test(str[i])) {
console.log('Match!');
}
}
}
rot13('HELLO124');
我从来没有达到“比赛!”输出。
答案 0 :(得分:1)
如p.s.w.g所评论,正则表达式/[A-Z]/
仅匹配大写字母。
要匹配任何字母(我想这就是“单个字符”的意思吗?),请使用/[A-Za-z]/
或/[A-Z]/i
(i不区分大小写)。
编辑:既然您已经澄清了问题,我已经测试了您的代码段,并且对我有用。也许您没有将字符串正确地传递给方法。
尝试在控制台中记录该方法内的字符串以确保操作。
rot13("HELLO1234");
function rot13(str) {
let regex = /[A-Z]/;
for(let i = 0; i < str.length; i++){
if(regex.test(str[i])){
console.log('Match!');
}
}
}
答案 1 :(得分:0)
对于一个大写字母:
/[A-Z]{1}/g
一个小写字母:
/[a-z]{1}/g
对于大写或小写:
/[a-zA-Z]{1}/g
对于大写或小写:
/[a-zA-Z]{1}/g
对于一个任意字符(基本上包括所有内容)情况:
/.{1}/g
低位,高位或数字
/[a-zA-Z0-9]{1,1}/g
您可以尝试使用正则表达式HERE :),这是一个非常有用的工具。