我有下面的单词列表,我希望用另一个单词替换,并希望它不区分大小写。
例如,101 North First Avenue.
应该变为101 n 1st ave
。
这是如何最好地完成的?
var o={
'first':'1st',
'second':'2nd',
'third':'3rd',
'forth':'4th',
'fifth':'5th',
'sixth':'6th',
'seventh':'7th',
'eighth':'8th',
'nineth':'9th',
'tenth':'10th',
'north':'n',
'south':'s',
'east':'e',
'west':'w',
'avenue':'ave',
'street':'st',
'place':'pl',
' ':' ',
',':'',
'.':''
}
答案 0 :(得分:2)
"101 North First Avenue.".split(" ").map(function(key) {
return o[key.toLowerCase().replace(/\.|\,/g,"")] || key
}).join(" ");
会回来: “101 n 1st ave”
答案 1 :(得分:0)
var Str;
function replace(Str)
{
for(var i=0;i<o.length,i++)
{
var key = o[i].key
str= str.replace(key,o[i].key );
}
return Str;
}
答案 2 :(得分:0)
这样的事情可行:
function replacer(str) {
var pairs = {
'first': '1st',
'second': '2nd',
'third': '3rd',
'forth': '4th',
'fifth': '5th',
'sixth': '6th',
'seventh': '7th',
'eighth': '8th',
'nineth': '9th',
'tenth': '10th',
'north': 'n',
'south': 's',
'east': 'e',
'west': 'w',
'avenue': 'ave',
'street': 'st',
'place': 'pl',
' ': ' ',
',': '',
'.': ''
};
Object.keys(pairs).forEach(function (key) {
str = str.split(key).join(pairs[key]).split(switchCase(key)).join(pairs[key]);
});
return str;
}
function switchCase(word) {
if (word[0].toUpperCase() == word[0]) {
return word[0].toLowerCase() + word.slice(1);
} else {
return word[0].toUpperCase() + word.slice(1);
}
};