23 lines
		
	
	
	
		
			410 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			410 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const numeric = /^[0-9]+$/
 | 
						|
const compareIdentifiers = (a, b) => {
 | 
						|
  const anum = numeric.test(a)
 | 
						|
  const bnum = numeric.test(b)
 | 
						|
 | 
						|
  if (anum && bnum) {
 | 
						|
    a = +a
 | 
						|
    b = +b
 | 
						|
  }
 | 
						|
 | 
						|
  return a === b ? 0
 | 
						|
    : (anum && !bnum) ? -1
 | 
						|
    : (bnum && !anum) ? 1
 | 
						|
    : a < b ? -1
 | 
						|
    : 1
 | 
						|
}
 | 
						|
 | 
						|
const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
 | 
						|
 | 
						|
module.exports = {
 | 
						|
  compareIdentifiers,
 | 
						|
  rcompareIdentifiers,
 | 
						|
}
 |