从字符串末尾单独删除“ _100”或“ _150”或“ _num”

时间:2019-08-24 11:24:27

标签: javascript regex

我如何从字符串末尾删除_100,应该仅在字符串末尾删除它。 例如 marks_old_100应该为“ marks_old”。 Marks_100应该是“标记”。

function numInString(strs) {
  let newStr = ''
  for (let i = 0; i < strs.length; i++) {
    let noNumRegex = /\d/
    let isAlphRegex = /[a-zA-Z]$/
    if (isAlphRegex.test(strs[i])) {
      newStr += strs[i]
    }
  }
  return newStr
}

console.log(numInString('marks_100'))

2 个答案:

答案 0 :(得分:0)

尝试:

string.replace(/_\d+$/g, "")

它使用正则表达式,并且$与字符串的末尾匹配。 .replace然后将其替换为空字符串,返回末尾没有\d+的字符串。 \d匹配任何数字,而+表示匹配多个数字。

或者,如果您想匹配单词的结尾,请尝试:

string.replace(/_\d+\b/g, "")

利用\b来匹配单词的结尾。

答案 1 :(得分:0)

请检查以下代码段:

const s = 'marks_old_100';

// remove any number
console.log(s.replace(/_[0-9]+$/, ''));

// remove three digit number
console.log(s.replace(/_[0-9]{3}$/, ''));

// remove _100, _150, _num
console.log(s.replace(/_(100|150|num)$/, ''));