这里的独立开发者。寻找一些想法如何检测字符串中的数字并反转所述数字的字符。例如,给出字符串:
'Lorem ipsum dolor 345 sit $4.50 amet,78% consectetur 45.60%adipisicing elit'
结果字符串为:
'Lorem ipsum dolor 543 sit 05.4$ amet,%87 consectetur %06.54adipisicing elit'
技巧是识别整个数字段,其中可能包括货币符号,百分比符号,句号或逗号小数分隔符,千位分隔符。我希望能够反转与字符串相关的子部分,并将其作为数字。
想法?
答案 0 :(得分:2)
这对于正则表达式来说可能是一个好工作:
var result = input.replace(/\$?[0-9]+(\.[0-9]+)?%?/g,
function(s) { return s.split('').reverse().join(''); });
答案 1 :(得分:1)
str = str.replace(/[0-9.$%]+/g, function(x) {
return x.split('').reverse().join('')
});
答案 2 :(得分:0)
有点粗糙,但应该工作。
function reverseNumInStr(str){
var wordArray = str.split(' ');
var newList = [];
wordArray.forEach(function(word){
var newWord = word.replace("$","").replace(".","").replace("%","").replace(",","");
var num = parseFloat(newWord);
if(!isNaN(num)){
newList.push(word);
}else{
newList.push(reverseStr(word));
}
});
return newList.join(" ");
}
function reverseStr(s){
return s.split("").reverse().join("");
}
答案 3 :(得分:0)
var output = input.replace(/[0-9.$%]+/g, function(oneway) {
return oneway.split("").reverse().join("");
});
<强> Plunker 强>
以下是一些有用的参考资料