【问题标题】:Replace symbols in a string that are not letters/digits/underscore with an underscore (Javascript or Typescript)? [duplicate]用下划线(Javascript 或 Typescript)替换字符串中不是字母/数字/下划线的符号? [复制]
【发布时间】:2020-12-22 14:13:49
【问题描述】:

我有一个来自我无法控制的数据源的随机字符串。 我的上游系统对此类 ID 有要求:“字段名称必须以字母开头,并且只能包含字母、数字或下划线 ('_')”。

如何在 Typescript/Javascript(可能使用 lodash)中将所有不是字母/数字/下划线的字符串符号替换为下划线?

【问题讨论】:

  • 您是否尝试过编写正则表达式或使用 lodash 的东西?请注意,这种修改可能会导致冲突,因为多个输入字符串将具有相同的输出。
  • 关于碰撞的公平点,但我不希望在我的用例中出现这些,而且风险远非严重
  • 您可以添加您的特定字符链接:- stackoverflow.com/questions/1349404/…

标签: javascript regex typescript lodash


【解决方案1】:
const input = '8~3m_E!P$m%S^wx_-';
input.replace(/[\W]/gm, '_');
// output: 8_3m_E_P_m_S_wx__

注意:这不包括要求的这一部分:“字段名称必须以字母开头”。但是,由于您没有具体询问,我假设您已经了解了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2012-10-26
    • 2021-01-11
    • 2018-05-20
    • 2016-10-13
    相关资源
    最近更新 更多