从最后一个大写字母开始剪字符串直到结尾

Cut string from last capital letter till the end

本文关键字:结尾 字符串 最后一个 大写字母 开始      更新时间:2023-09-26

我有一个字符串变量,类似于"thisMagazineRoomcode"。我需要把这个从"R"——最后一个大写字母——切到字符串的末尾。切片方法不适合我,因为我有不同的变量,如"thisMagazineName"或"thisMagazineSquare",大写字母后的字母数量不同。

您可以使用 String#replace 方法。

console.log(
  'thisMagazineRoomcode'.replace(/[A-Z][^A-Z]*$/, '')
);

您可以使用RegExp.exec()或String.match()

var stringValue = "thisMagaizineRoomcode";
re = /[A-Z][^A-Z]*$/;
re.exec(stringValue);
stringValue.match(re);

这将输出一个数组,但是如果您需要它作为字符串,您可以这样做:

var result = re.exec(stringValue);
return result[0];

试试这个

/** check whether the input is capital letter or not
*/
function isCapitalLetter(c) {
  return c >= 'A' && c <= 'Z'
}
/** revert string */
function revertString(str) {
  return str.split('').reverse().join('')
}
/** cut last capital letter till the end */
function cutLastWord(str) {
  const revertStr = revertString(str)
  
  for (let i = 0; i < revertStr.length; i++) {
    if (isCapitalLetter(revertStr[i])) {
      const revertResult = revertStr.substr(0, i + 1)
      const result = revertString(revertResult)
      console.log(result)
      break
    }
  }
}
/** run sample data */
cutLastWord('HelloWorld') // World
cutLastWord('Hello') // Hello
cutLastWord('IAmHero') // Hero

下面是完成这项工作的函数

function cutStr(str) {
            var regex = /[A-Z][^A-Z]*$/;
            return str.split(regex).join('');
        }
console.log(cutStr('thisIsRedmond')); // output 'thisIs'