2015-08-20 44 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'); 

(我認爲你應該在«之前也加入一個非休息空間。)

相關問題