# tablesorter

## Leading zeros parser

### Flexible client-side table sorting

Back to documentation

NOTE!

- Added this parser in v2.28.6.
- The problem with leading zeros:
  1. When using the number parser (`sorter-digit` in the first column), the leading zeros are removed upon parsing, so all equal values are sorted in a non-stable manner.
  2. Switching the parser to text (`sorter-text` in the second column) will behave the same as the number parser in the first column. This happens because the internal natural sort algorithm processes numeric values similar to the number parser.
  3. Prior to this parser, it was recommended to use a plain text sort (setting `textSorter` for the third column; see issue #409). This method is not ideal as a plain sort will sort `2` after `15`, and sort all leading zeros at the top of the column.
  4. This parser (`sorter-leadingZeros` in the fourth column) processes leading zeros by subtracting a very small number from the parsed value based on the total length of the string.
- Click on the "Toggle parsed values" button to see the values as saved to the cache.
- The small number the leading zeros parser subtracts from the cell value has a precision of 10 digits (`1e-10`). If you are using higher precision values, then copy this parser and increase the precision as needed.

# Demo

Number sort | Natural text sort | Plain text sort | Leading Zeros parser
--- | --- | --- | ---
001 | 001 | 001 | 001
1 | 1 | 1 | 1
2 | 2 | 2 | 2
10 | 10 | 10 | 10
01 | 01 | 01 | 01
1.01 | 1.01 | 1.01 | 1.01
000001 | 000001 | 000001 | 000001
00001 | 00001 | 00001 | 00001
020 | 020 | 020 | 020
0001 | 0001 | 0001 | 0001
3 | 3 | 3 | 3
10 | 10 | 10 | 10
12 | 12 | 12 | 12
15 | 15 | 15 | 15
02 | 02 | 02 | 02
5 | 5 | 5 | 5
25 | 25 | 25 | 25
21 | 21 | 21 | 21

# Page Header

    <link href="css/theme.blue.css" rel="stylesheet">
    <script src="js/jquery.min.js"></script>
    <script src="js/jquery.tablesorter.js"></script>
    <script src="js/parser-leading-zeros.js"></script>

# Javascript

# HTML