javascriptjqueryregexsoft-hyphen

Removing soft hyphens from a string


Let's say I have a string that is littered with soft hyphens (pretend that the hyphens in the text below are soft hyphens):

T-h-i-s- -i-s- -a- -t-e-s-t-.-

I want to remove the soft hyphens and only return the string of:

This is a test.

I'm trying to do this in JavaScript. Below is the farthest I have gotten so far:

RemoveSoftHyphen: function (text) {
    var result = text.match(/[^\uA00AD].*/);
    alert (result);
    return result;
}

When the alert displayed, all I got was a "-", which I'm not sure whether thats a soft or hard hyphen... but more importantly, it didn't work.

I'm trying to find out what is wrong with my regex, or is there a better approach to removing soft hyphens which I'm not aware of using either JavaScript or jQuery.


Solution

  • Assuming that the character really is Unicode 00AD:

    var result = text.replace(/\u00AD/g,'');
    

    If you have many hyphens to kill, use a character class:

    var result = text.replace(/[\u00AD\u002D\u2011]+/g,'');