我想删除.除最后一个字符串之外的所有字符串substring = .
例如:
1.2.3.4
Run Code Online (Sandbox Code Playgroud)
应成为:
123.4
Run Code Online (Sandbox Code Playgroud)
Сух*_*й27 22
您可以使用正面向前的正则表达式,
"1.2.3.4".replace(/[.](?=.*[.])/g, "");
Run Code Online (Sandbox Code Playgroud)
nin*_*cko 11
2,内胆:
function removeAllButLast(string, token) {
/* Requires STRING not contain TOKEN */
var parts = string.split(token);
return parts.slice(0,-1).join('') + token + parts.slice(-1)
}
Run Code Online (Sandbox Code Playgroud)
不需要字符串参数的替代版本:
function removeAllButLast(string, token) {
var parts = string.split(token);
if (parts[1]===undefined)
return string;
else
return parts.slice(0,-1).join('') + token + parts.slice(-1)
}
Run Code Online (Sandbox Code Playgroud)
演示:
> removeAllButLast('a.b.c.d', '.')
"abc.d"
Run Code Online (Sandbox Code Playgroud)
以下单行是一个正则表达式,它利用了*字符贪婪的事实,如果找不到匹配,则replace将保留字符串.它通过匹配[包括点的最长字符串] [点]并保留[字符串的其余部分]来工作,如果找到匹配,则从中删除所有'.':
'a.b.c.d'.replace(/(.*)\./, x => x.replace(/\./g,'')+'.')
Run Code Online (Sandbox Code Playgroud)
(如果你的字符串包含换行符,你将不得不使用[.\n]而不是裸体.)
你可以这样做:
var str = '1.2.3.4';
var last = str.lastIndexOf('.');
var butLast = str.substring(0, last).replace(/\./g, '');
var res = butLast + str.substring(last);
Run Code Online (Sandbox Code Playgroud)
实例:
您可以积极向前看(保留最后一个点,如果有的话)并替换第一个出现的点。
var string = '1.2.3.4';
console.log(string.replace(/\.(?=.*\.)/g, ''));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8996 次 |
| 最近记录: |