2015-08-20 48 views
0

法语中的标点符号之前有空格是常规操作。替换某些字符之前/之后的空格

我有文字是这样的:

保罗m'a DIT«卓悦! »

我想一个jQuery/javascript函数与之前下列字符非中断空格来代替常规空格:

! : ? … ; » 

和这个角色后:

« 

莫非任何人都指向正确的方向?先谢谢你。

+0

你试过什么吗? – somethinghere

回答

1

像这样(编辑:测试工作)

function replaceNonBreaking(text) { 
    return text.replace(/ (!|:|\?|…|;|»)/g, " $1").replace('« ', '« '); 
} 

更换所有出现的 “[空格] [特殊字符]” 到“[不间断空格] [是特殊字符] “在字符串中。

1

很可能有一个比这更好的正则表达式的方法(正则表达式是我的垮台),但是这一个工程:

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

DEMO

0

你可以这样做:

var str = 'Paul m\'a dit : « Bonjour ! »'; 
var corrected_str = str.replace(/ (!|\:|\?|…|;|»)/g, ' $1', str).replace('« ', '«&nbsp'); 

(我认为你应该在«之前也加入一个非休息空间。)

相关问题