2

假设一个有一个 4 位数字,例如 1243,有没有办法使用正则表达式来找出数字内的数字是否按升序排列,例如这是一个很好的数字“3579”,当“ 1243" 不是

4

3 回答 3

6

您可以使用这样的正则表达式:

^0*1*2*3*4*5*6*7*8*9*$

例子:

var re = /^0*1*2*3*4*5*6*7*8*9*$/;
alert(re.test('3579'));
alert(re.test('1243'));

演示:http: //jsfiddle.net/xYgpS/

于 2013-10-02T01:38:13.707 回答
2

正则表达式是不适合这项工作的工具。你最好用一个简单的循环来做到这一点:

function isAscending(str) {
    str = str.toString();

    for (var i = 0; i < str.length - 1; ++i) {
        if (str[i] >= str[i + 1]) {
            return false;
        }
    }

    return true;
}
于 2013-10-02T01:35:33.363 回答
2
var string="1234";
var orderedString=string.split("").sort().join("");
return (string==orderedString);
于 2013-10-02T02:02:17.657 回答