打印给定列表中包含数字1,2,3的所有数字,不一定按顺序排列。
输出中的数字应按排序顺序排列。
如876321,3245,123,则输出应为:
123,876321
答案 0 :(得分:1)
使用具有一些正向前瞻的正则表达式进行正则表达式匹配,以确保有1 2和3。这是一个适用于您的测试用例的示例。 https://regex101.com/r/y052Pi/1/
(?=.*1)(?=.*2)(?=.*3)[0-9]*
将您的匹配放入可排序或已排序的集合中。
这是一个可运行的js实现。
var testValues = [876321,3245,123],
results = [];
testValues.forEach( function( element ) {
if( /^(?=.*1)(?=.*2)(?=.*3)[0-9]*/.test( '' + element) ) {
results.push(element);
}
});
results = results.sort( (a, b) => a - b );
console.log( results );