输入字符串类似于:
This is new update -(!@#$%) 1.0...
字符串
我有一个字符串(标题),我需要转换,以便在未来使用它作为一个链接。
必要条件:
1.删除所有特殊字符。
1.将多个空格替换为一个空格。
1.将空格替换为下划线。
1.只留下数字之间的点。
我不确定我做的每件事都是正确的。现在我经常使用.replace()
方法:
.replace(/[^a-z0-9_.\s]/gi, ' ')
.replace(/[\s\s+]/g, '_')
.replace(/[\.]/g, '.')
.replace(/[\s\s+]/g, '_')
型
我应该采取什么方法来实现这个结果?
目标:
this_is_new_update_1.0
型
2条答案
按热度按时间zfciruhq1#
用两个正则表达式替换:
1.第一个月
/\s+/g
个首先用第一个捕获组替换#1,然后用
_
替换#2。1匹配以下之一
(\d\.\d)
-一个数字,后面跟着一个小数点和另一个数字。如果匹配,则捕获。\.
-句号/句号[^\s\w]
-不是空格(\s
)或单词字符(\w
)的字符这被捕获组#1($1)替换,如果除第一个部分之外的任何部分匹配,则该捕获组为空。如果第一个部分匹配,则它是捕获的 digit-period-digit 组合(即,不改变任何内容)。
之后,所有空格序列(#2 -
\s+
)都被替换为单个_
。字符串
smdncfj32#
您可以将合并 1 和 4 组合。
字符串
然后,2 和 3。
型
型