Your task is to sort a given string. Each word in the String will contain a single number. This number is the position the word should have in the result.
Note: Numbers can be from 1 to 9. So 1 will be the first word (not 0).
If the input String is empty, return an empty String. The words in the input String will only contain valid consecutive numbers.
For an input: "is2 Thi1s T4est 3a" the function should return "Thi1s is2 3a T4est"
将所给字符串中按照其所含数字升序重新排序。
首先想到是将字符串转为数组,按照str.split(" ")方法分割为字符串数组,再获取字符串中的数字,按其升序排列。思路简单清晰。
function order(words)
{ return words.split(' ').sort(function(a, b){ return a.match(/\d/) - b.match(/\d/);}).join(' ');}
(通过match方法获取0-9的数字字符)
function(a,b){return a.replace(/[^0-9]/ig,"")-b.replace(/[^0-9]/ig,"")} (通过replace方法将数字以外的字符摘除)
match()方法返回结果匹配的数组,且参数为正则表达式。
replace()方法匹配到符合正则表达式的值后,替换为第二个参数,结果返回替换后的字符串。