【问题标题】:JavaScript regex replace - but only part of matched string?JavaScript 正则表达式替换 - 但只是匹配字符串的一部分?
【发布时间】:2023-04-07 17:43:02
【问题描述】:

我有以下替换功能

myString.replace(/\s\w(?=\s)/,"$1\xA0");

目的是采用单字母单词(例如介词)并在其后添加一个不间断空格,而不是标准空格。

但是上面的 $1 变量对我不起作用。它插入文本“$1”而不是原始匹配字符串的一部分+ nbsp。

观察到的行为的原因是什么?有没有其他方法可以实现?

【问题讨论】:

    标签: javascript regex replace typography


    【解决方案1】:

    $1 不起作用,因为您没有任何捕获子组。

    正则表达式应该类似于/\b(\w+)\s+/。

    【讨论】:

    • 是的,“捕获组”是我缺少的部分。非常感谢!
    • 谢谢。它没有很好的记录,我无法弄清楚
    【解决方案2】:

    似乎你想做这样的事情:

    myString.replace(/\s(\w)\s/,"$1\xA0");
    

    但是这样你会在你的单字母词之前失去空格。因此,您可能还想在捕获组中包含第一个 \s。

    【讨论】:

    • 嘿,这很有魅力!太棒了,非常感谢。我不知道“捕获组”,但怀疑有类似的东西。
    猜你喜欢
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2015-02-03
    • 2012-11-25
    • 1970-01-01
    相关资源
    最近更新 更多