gpt4 book ai didi

javascript - 在 JavaScript 中创建正则表达式的问题

转载 作者:行者123 更新时间:2023-11-28 21:15:39 24 4
gpt4 key购买 nike

我正在研究正则表达式(实际上是正则表达式),它可以满足我的需求。 :)

我需要替换给定的字符串(名为title)并返回slug:

  1. 在有一个空格的地方用一个下划线替换一个空格。如果空格多于 1 个,则只应替换 1 个空格。这很难解释,但我会尝试用例子来解释。 Hi and hello, world! 将是 Hi_and_hello,_world!,但是,例如,如果“world”之前有两个空格,则将是 嗨_和_你好,_世界!

  2. 将所有剩余的空格替换为空 (''),

  3. 替换所有不需要的字符(白名单:a-zA-Z0-9 和下划线)。换句话说,如果符号不在白名单中,则应将其替换为任何内容 (''),

  4. 去掉下划线的开头和结尾;

最终结果应该是:

你好,世界!我被称为达格雷维斯。 :)

...至:

Hello_world_Im_known_as_daGrevis

我需要在 JavaScript 中做的所有事情。这是我到目前为止得到的:

slug = title.replace(/\s+/g, '_');
slug = title.replace(/\s+/g, '');
slug = title.replace(/[^\w0-9a-zA-Z]/g, '');

我不擅长正则表达式,所以不要笑我。 :D 谢谢你的建议!

最佳答案

换句话说:

  1. 用一个下划线替换所有连续空格
  2. 删除所有不需要的字符
  3. 删除开头和结尾的下划线

给你:

var slug = title.replace(/\s+/g, '_');
slug = slug.replace(/[^0-9a-z_]/gi, '');
slug = slug.replace(/^_+|_+$/g, "");
  • \s+ 匹配尽可能多的连续空格(空格、换行符、制表符等)
  • /g 是一个全局标志,意思是:“选择每个匹配项”
  • /[^a-z0-9_]/gi 表示:任何非字母数字字符或下划线的内容,不区分大小写
  • ^$ 是字符串开头和结尾的标记。
    ^_+|_+$/g 表示:匹配字符串开头和结尾的每个下划线

不要忘记对slug(而不是title)执行以下替换。否则,您会“忘记”之前的替换项。

关于javascript - 在 JavaScript 中创建正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com