Возможно ли заменить все вхождения, кроме первого? Таким образом, 123.45.67..89.0
должен стать 123.4567890
.Заменить все, кроме первого
Редактировать: Я ищу регулярное выражение. Я знаю, как это сделать с помощью concat или с помощью индекса.
Возможно ли заменить все вхождения, кроме первого? Таким образом, 123.45.67..89.0
должен стать 123.4567890
.Заменить все, кроме первого
Редактировать: Я ищу регулярное выражение. Я знаю, как это сделать с помощью concat или с помощью индекса.
попробовать это
var a = '123.45.67.89.0';
a.split('.')[0].concat('.'+a.split('.')[1]+a.split('.')[2]+a.split('.')[3]+a.split('.')[4])
Вы не думаете, 'a.split [0] + (" ")"." + a.split ("."). slice (1) .join ("") 'может быть немного более общим (и читаемым)? – Malvolio
да, вы правы, мой подход немного длинный ... в спешке я не думаю об этом подходе –
Я бы не стал слишком беспокоиться о * длине *. Беспокоиться, что (1) это не общий (предположим, что было пять точек, или 100), и (2) код [повторяется] (https://en.wikipedia.org/wiki/Don%27t_repeat_yourself), который созрел для ошибок. – Malvolio
Будет ли это быть обман:
"123.45.67.89.0".replace(/\..*/, c => "." + c.replace(/\./g,() => ""))
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, ""));
Это ** не ** способ использования 'map()'. Вы должны написать 'arr.map (function (a, index) {return a + (index?" ":". ")})'. – Malvolio
И это ** не ** способ присоединиться к массиву. Используйте '.join (" ")'. – Malvolio
@ Малволио, все в порядке. но я получаю ответ, поскольку он хотел – Mahi
Использование 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);
Надеется, что это помогает :)
Это правильно, и он работает. Я думаю, что 'indexOf' может быть дешевле вместо' search'. Я ищу регулярное выражение. – xBlue
Возможны сращиванию() больше подходят для этого.
var str = "123.45.67.89.0";
var arr = str.split(".");
var ans = arr.splice(0,2).join('.') + arr.join('');
alert(ans);
// 123.4567890
Смотрите это: http://stackoverflow.com/q/30227218/5241603 –