在法语中,标点符号前通常有空格。

我有这样的文字:


  Paul m'a dit«Bonjour! »


我想使用jquery / javascript函数在以下字符之前用不间断空格替换常规空格:

! : ? … ; »


在此字符之后:

«


有人能指出我正确的方向吗?先感谢您。

最佳答案

正则表达式的方法可能比这更好(正则表达式是我的失败),但是这种方法有效:

str = str.replace(/\s([!:\?…;»])/g, function (el1, el2) {
    return ' ' + el2;
}).replace(/(«)\s/g, function (el1, el2) {
    return el2 + ' ';
});


DEMO

07-24 18:19