我可以用什么不同的方式在JavaScript中从字符串中删除字符?
我可以用什么不同的方式在JavaScript中从字符串中删除字符?
使用正则表达式的 replace()
是最灵活/强大的方式。这也是在JavaScript中全局替换每个搜索模式的唯一方法。非正则表达式变体的 replace()
只会替换第一个实例。
例如:
var str = "foo gar gaz";
// returns: "foo bar gaz"
str.replace('g', 'b');
// returns: "foo bar baz"
str = str.replace(/g/gi, 'b');
在后一个例子中,末尾的/gi
表示大小写不敏感和全局替换(意味着不仅应替换第一个实例),这通常是在字符串替换时所需的。
要删除字符,请使用空字符串作为替换内容:
var str = "foo bar baz";
// returns: "foo r z"
str.replace(/ba/gi, '');
str.replace('g', 'b');
本身是不起作用的。使用str = str.replace('g', 'b');
会使答案更好。 - Yuci一行代码可同时移除多个字符的列表 - 例如从电话号码中移除+、-、空格、(、)
等:
var str = "+(48) 123-456-789".replace(/[-+()\s]/g, ''); // result: "48123456789"
我们使用正则表达式[-+()\s]
,其中我们将不需要的字符放在[
和]
之间。
("\s
"是空格字符转义符——有关更多信息,请搜索"正则表达式中的字符转义")
var str = "+(48) 123-456-789".replace(/[\D]/g, ''); // result: "48123456789"
- Stefano Coletta我知道这很老,但如果你对它进行分割,然后再拼接起来,它将会删除所有出现的特定字符,例如:
var str = theText.split('A').join('')
将从字符串中删除所有出现的 'A',显然是不区分大小写的。
到目前为止,还没有人谈论过的另一种方法是使用 substr 方法从另一个字符串中生成字符串... 如果您的字符串具有定义的长度,并且要删除的字符位于字符串的两端或字符串的“静态维度”内,则此方法非常有用。
const removeChar = (str: string, charToBeRemoved: string) => {
const charIndex: number = str.indexOf(charToBeRemoved);
let part1 = str.slice(0, charIdx);
let part1 = str.slice(charIdx + 1, str.length);
return part1 + part2;
};