2016-10-04 63 views
0

我正在寫一個jQuery插件來替換!?之前的空格或非空格,由NARROW NO-BREAK SPACE替代,因爲它在法語中很常見。事情是我沒有設法用unicode字符取代某些東西。正則表達式js:用unicode替換字符

var text = $(this).text(); 
 
$(this).text(text.replace(/.\?/g, '\u202F\?'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Contrary to popular belief, Lorem Ipsum is not simply; random text ! It has roots in a piece. of classical Latin literature from 45 BC?</p>

+0

那麼,代碼似乎並沒有工作。請注意,您也可以用' '實體替換。 '.replace(/.\?/ g,' ?')' –

+0

我的例子中,我想在C和?之間添加狹窄的不間斷空間。在最後一句話。 –

+0

然後嘗試'.replace(/.(?=\?)/ g,'$& ')' –

回答

0

望着只有文本替換,

text.replace(/[ \u202F]*([!\?])/g, "\u202F$1") 

轉換在text零個或更多的空間或狹窄的非破空格字符,然後 '!'或'?'分成一個窄的非休息空格字符,後跟'!'要麼 '?'字符匹配(在Firefox和IE中測試)。

[ \u202F] 

在正則表達式中定義了一個字符集來匹配空格,幷包含窄的非斷續空格字符本身。這可以擴展爲包含特定的額外空間字符,例如不間斷空格(\u00A0),製表符或用\s替換以匹配任意包括換行符的空白字符。