是否可以替换除第一个以外的所有事件?
因此123.45.67..89.0
应该成为123.4567890
。
编辑:我正在寻找正则表达式。 我知道如何使用concat或使用索引来完成它。
答案 0 :(得分:4)
使用JS:
var str = "123.45.67.89.0";
var firstOccuranceIndex = str.search(/\./) + 1; // Index of first occurance of (.)
var resultStr = str.substr(0, firstOccuranceIndex) + str.slice(firstOccuranceIndex).replace(/\./g, ''); // Splitting into two string and replacing all the dots (.'s) in the second string
console.log(resultStr);
希望这会有所帮助:)
答案 1 :(得分:2)
您可以使用积极的眼光实现这一目标:
(?<=\..*)\.
所以您的代码应该是
"123.45.67..89.0".replace(/(?<=\..*)\./g, '');
答案 2 :(得分:1)
这会是作弊:
"123.45.67.89.0".replace(/\..*/, c => "." + c.replace(/\./g, () => ""))
答案 3 :(得分:0)
试试这个
var a = '123.45.67.89.0';
a.split('.')[0].concat('.'+a.split('.')[1]+a.split('.')[2]+a.split('.')[3]+a.split('.')[4])
答案 4 :(得分:0)
也许splice()更适合这个。
var str = "123.45.67.89.0";
var arr = str.split(".");
var ans = arr.splice(0,2).join('.') + arr.join('');
alert(ans);
// 123.4567890
答案 5 :(得分:0)
我们可以将一个函数传递给replace方法,并匹配除第一个事件以外的所有事件。像这样-
givenString.replace(/{pattern_here}/g, (item) => (!index++ ? item : ""));
const givenString = '123.45.67..89.0'
let index = 0
let result = givenString.replace(/\./g, (item) => (!index++ ? item : ""));
console.log(result)
答案 6 :(得分:0)
您可以首先使用 indexOf 找到 .
的第一次出现,然后使用 replace 返回返回的内容并替换为匹配的字符串。
const str = "123.45.67..89.0";
const firstOccurence = str.indexOf(".");
const result = str.replace(/\./g, (...args) => {
if (args[1] === firstOccurence) return args[0];
else return "";
});
console.log(result);
答案 7 :(得分:-1)
var str="123.45.67.89.0";
var arr=str.split(".");
var ans=[];
ans=arr.map(function(a,index){
return a + (index?"":".");
})
console.log(ans.join().replace (/,/g, ""));
&#13;