Pattern_replace Token Filter

I think I'm having some problem understanding how the pattern_replace token filter works.

What I am trying to do is replace dashes and other non-digit characters in a string before it gets put into elasticsearch. So, that way a person can search on a number regardless of the way it was put in the interface. Nothing is being replaced.

Here is my setting and mapping

"settings" : {
"analysis" : {
"filter" : {
"phone_number_cleaner": {
"type": "pattern_replace",
"pattern": "\D",
"replacement": ""
}
},
"analyzer" : {
"whitespace_delimited_pattern" : {
"type" : "pattern",
"pattern" : "\s+"
},
"phone_nondig_filter": {
"filter": ["phone_number_cleaner"],
"type": "custom",
"tokenizer": "standard"
}
}
}
}

Mapping:

"contact_search" : {
"properties" : {
"state.tags" : {"type" : "string", "store":"yes", "index_analyzer":"standard"},
"state.firstname" : {"type":"string","store":"yes", "index_analyzer":"whitespace_delimited_pattern"},
"state.lastname" : {"type":"string","store":"yes", "index_analyzer":"whitespace_delimited_pattern"},
"state.comm.COMP" : {"type":"nested","store":"yes", "index_analyzer":"standard"},
"state.comm.PHONE" : {
"fields" : {
"phonevalue": {
"type":"string",
"store":"yes",
"index_analyzer":"phone_nondig_filter"
},
"phonelabel": {
"type":"string",
"store":"yes",
"index_analyzer":"standard"
}
},
"type": "multi_field"
}
}
}