问题
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.
回答1:
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,'');
来源:https://stackoverflow.com/questions/10380366/removing-soft-hyphens-from-a-string