如何测试正则表达式与单个字符的匹配?

时间:2019-04-30 20:42:23

标签: javascript

我正在尝试使用以下代码针对字符串中的单个字符测试正则表达式:

我尝试使用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');

我从来没有达到“比赛!”输出。

2 个答案:

答案 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 :),这是一个非常有用的工具。