gpt4 book ai didi

javascript - 优化我的 javascript REGEX 以格式化短名称

转载 作者:行者123 更新时间:2023-12-02 20:21:32 27 4
gpt4 key购买 nike

我正在编写一个 JavaScript 正则表达式,将字符串转换为短名称(用于干净的 URL)。我需要它来:

  • 将其转换为小写
  • 删除所有“坏”字符
  • trim 所有前导和尾随空格
  • 替换破折号的单个和多个空格。

这是我到目前为止所拥有的(为了便于阅读而添加了换行符):

clean_value = $(this).val().toLowerCase().replace(/[^a-z0-9 -]+/g,'')
.replace(/^\s+|\s+$/g, '').replace(/ +(?= )/g,'-')
.replace(/ /g, '-');

这样就可以了,但我知道有一种更有效的方法来形成这些正则表达式...我对它们很不满意,并且花了一个小时试图弄清楚如何尽可能地组合这些。

任何帮助将不胜感激!

最佳答案

在我看来,这看起来还不错。最好拥有一系列可读、可管理的正则表达式,而不是几周后没有人(包括你自己)会理解的通用怪物。

一个建议:

clean_value = $(this).val().toLowerCase().replace(/[^a-z0-9 -]+/g,'')
.replace(/^\s+|\s+$/g, '').replace(/ +/g,'-');

要使最后一个 replace() 执行您指定的操作 - 将一个或多个空格转换为单个破折号。

如果您在一行中仍有多个破折号,并且希望将其减少为单个破折号,则可以添加一个

.replace(/-{2,}/, '-')

最后。

关于javascript - 优化我的 javascript REGEX 以格式化短名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495330/

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