【问题标题】:Removing soft hyphens from a string从字符串中删除软连字符
【发布时间】:2012-04-30 08:06:39
【问题描述】:

假设我有一个带有软连字符的字符串(假设下面文本中的连字符是软连字符):

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 的软连字符。

【问题讨论】:

  • 字符串在代码中的什么位置被插入回 DOM?
  • @Hamish:这是一个可以被其他东西调用的函数。软连字符的匹配是最令人担忧的部分,因为我对如何摆脱那些忍者连字符并返回给我清理过的字符串一无所知。
  • 但是“返回的字符串不再包含任何软连字符”。不清楚你在问什么。也许在 jsfiddle.com 上创建一个示例
  • 你想要做的是 - 从字符串中删除连字符,是吗?
  • 感谢您迄今为止的所有帮助。我已经更新了这个问题。希望它会更清楚一点。

标签: javascript jquery regex soft-hyphen


【解决方案1】:

假设字符确实是 Unicode 00AD:

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

如果你要杀死many hyphens,请使用角色类:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 2016-07-26
    • 2013-09-18
    • 2011-11-22
    相关资源
    最近更新 更多