regex JavaScript:在结尾处修剪掉星星或空格

yvfmudvl  于 2023-08-08  发布在  Java
关注(0)|答案(4)|浏览(124)

我有一个字符串,它可以以" *"" **"结尾,也可以没有空格和星星。我不得不修剪任何空间或星星在年底的字符串,但我不能得到它的工作

trimStarsOff(strWithStars: string): string {
    const returnStr = strWithStars;
    if (strWithStars.includes('*')) {
      const test = strWithStars.replace(' \\*$', '');
      cy.log(`test ${test}`);
    }
    return returnStr;
}

字符串
星星留在我的身上:

test "Some words test *"

test "Other words test2 *"


我错过了什么?

6yt4nkrj

6yt4nkrj1#

请使用多个替换为g标志。

function trimStarsOff(strWithStars) {
    var returnStr = strWithStars.replace(/\*/g, '');
    return returnStr.trim();
}

字符串

iq3niunx

iq3niunx2#

首先,使用正则表达式文字而不是字符串。此外,使用+允许替换一个或多个星号。

const trimStarsOff = s => s.replace(/ \*+$/, '');
console.log(trimStarsOff('Some words test *'));
console.log(trimStarsOff('Test ***'));

字符串

kiayqfof

kiayqfof3#

您尝试在字符串中使用正则表达式,而不是仅使用/regex/格式(从技术上讲,您还可以使用带有字符串的RegExp构造函数)。你也不需要检查是否需要替换,只要尝试替换,如果你得到的输入作为输出回显,那就好了。

function trimStarsOff(strWithStars) {
    return strWithStars.replace(/ \*+$/, '');
}

console.log(trimStarsOff("foo bar"));
console.log(trimStarsOff("banana sandwich *"));
console.log(trimStarsOff("corn on the cob **"));
console.log(trimStarsOff("stack overflow"));

字符串

wz3gfoph

wz3gfoph4#

如果你想让它通用于任意数量的空间和恒星:

const log = str => console.log(JSON.stringify(str));

function trimStarsOff(strWithStars) {
    return strWithStars.replace(/[*\s]+$/, '');
}

log(trimStarsOff("foo bar"));
log(trimStarsOff("banana sandwich *"));
log(trimStarsOff("corn on the cob * *"));
log(trimStarsOff("stack overflow  *** *"));

字符串

相关问题