【问题标题】:Replace any of several characters with underscore [duplicate]用下划线替换几个字符中的任何一个[重复]
【发布时间】:2023-04-03 02:03:01
【问题描述】:

我有一个简单的任务,但我不确定语法。

我有一个字符串,想替换任何出现的 '['、']' 或 '.'带有下划线 ('_')。

我知道string.replace()支持正则表达式,对[]也给予特殊处理。

【问题讨论】:

  • 转义得到特殊处理的字符。
  • 您好,只是为了澄清这是方括号和单引号?还是只有点和逗号?

标签: javascript


【解决方案1】:

为此使用replaceAll

** 注意,replace 也可以使用,因为这是全局搜索。

const src = '/[[\].]/g';
const target = '_';

const formated = string.replaceAll(src, target);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll

【讨论】:

  • 为什么要使用replaceAll()replace() 似乎有效。
  • replaceAll() 替换所有出现的搜索,而replace() 仅替换第一次出现。
  • replace() 似乎正在工作并替换所有出现的情况。
  • 你确定你没有只出现一次?
  • 我有这三个字符中的一个。所以只有一个。
【解决方案2】:

使用反斜杠对字符进行特殊处理。

string = string.replace(/[[\].]/g, '_');

请注意,[.[] 内部不会受到特殊处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    相关资源
    最近更新 更多