2012-04-30 175 views
3

比方说,我有一个充斥着软连字符的字符串(假装在下面的文字连字符连字符):删除软连字符从字符串

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

我想删除软连字符和只返回字符串:

This is a test. 

我想在JavaScript中做到这一点。下面是到目前为止,我已经得到了最远:

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

当警报显示,所有我得到的是一个“ - ”,这我不知道是否这就是软或硬连字符...但更重要的是,它没有工作。

我想知道我的正则表达式有什么问题,或者有更好的方法来删除我不知道使用JavaScript或jQuery的软连字符。

+1

凡在代码执行字符串得到插回DOM? – Hamish

+0

@Hamish:这是一个将被其他东西调用的函数。软连字符的匹配是最令人担忧的部分,因为我完全不知道如何摆脱那些忍者连字符,并将我的消毒字符串还给我。 – BeraCim

+0

但*“返回的字符串不再包含任何软连字符”*。目前还不清楚你在问什么。也许在jsfiddle.com上创建一个例子 – Hamish

回答

8

假设性格真的是Unicode 00AD:

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

如果你有many hyphens杀,使用字符类:

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