首页 文章

函数检查字符串并更改它们

提问于
浏览
1

我正在寻找一个循环,用于检查大写字母的字符串

function isUpperCase(aCharacter)
{
    return (aCharacter >= 'A') && (aCharacter <= 'Z');
}

当遇到大写字母时,它将执行anoter功能,让我们称之为 'dummyFunction' ,这将把所有字母改为与大写字母相同的字母,但只会遇到下一个大写字母,等等 . (我希望你能理解我的意思)例如,如果我有一个字符串'AbcdeFghijKlmno',程序的结果将是:'AAAAAFFFFFKKKKK' . 有任何想法吗?

1 回答

  • 0

    据推测,结果应该复制字符直到达到第一个资本,所以:

    var wierdStringThing = (function() {
      var re = /[A-Z]/;
      return function (s) {
        s = s.split('');
        var result = [];
        var t = s[0];
        var c;
    
        for (var i=0, iLen=s.length; i<iLen; i++) {
          c = s[i];
          if (re.test(c)) {
            t = c;
            result.push(c);
          } else {
            // Copies characters until first capital,
            // then repeats capital until next
            result.push(re.test(t)? t : c);
          }
        }
        return result.join('');
      }
    }());
    
    var x = 'adbCasdfHasdV'
    alert(x + '\n' + wierdStringThing(x));
    /*
    adbCasdfHasdV
    adbCCCCCHHHHV
    */
    

相关问题