欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 正則表式全角冒號

傅智翔1年前6瀏覽0評論

JavaScript的正則表式是開發(fā)過程中經(jīng)常用到的一種工具,它可以對字符串進行靈活的匹配和替換,幫助我們實現(xiàn)很多功能。

今天我們所要講的就是正則表式中的全角冒號。在實際開發(fā)中,我們經(jīng)常會遇到一些中文字符需要進行匹配、替換,如果不加以特殊處理容易導致一些問題。隨著中文在互聯(lián)網(wǎng)應用中的普及,這種情況變得越來越普遍。

那么什么是全角冒號呢?

全角字符是指占兩個半角字符位置的字符,也即是中文字符在計算機顯示中等寬占位兩個字符的字符,其 ASCII 碼值大于 127。而半角字符就是在計算機中顯示時只占用一個等寬位置的字符,其 ASCII 碼值小于等于 127。

// js代碼實現(xiàn)一個全角字符檢測
function isFullwidthCode(str) {
for(var i = 0; i< str.length; i++) {
var code = str.charCodeAt(i);
if(code >= 65281 && code<= 65374 || code == 12288) {
return true;
}
}
return false;
}
var str = "這個是全角字符:";
console.log(isFullwidthCode(str)); // true

如果在正則表式中想要匹配全角冒號,我們可以使用正則表式的unicode表示法,即'\uFF1A','\u'是unicode的前綴,'FF1A'是全角冒號對應的unicode碼值。具體表達式如下:

//匹配全角冒號
var regex = /[\uFF1A]/;
var targetStr = '我是全角冒號:我是半角冒號:';
console.log(targetStr.match(regex)); //[':']

當然,有時候我們需要先把全角字符轉(zhuǎn)為半角字符再進行匹配,那么我們可以使用一個小技巧:

// 全角半角互換
function transform(code) {
var result = code - 65248;
return result< 0 ? code : result;
}

利用這個技巧,我們就可以先將全角字符轉(zhuǎn)成半角字符,再使用正則匹配字符串:

//檢測字符中是否含有全角字符 
var regex = /[^\uFF00-\uFFFF]/g;
var targetStr = '半角字符aaa全角字符:';
targetStr = targetStr.replace(regex, function(match) {
var c = transform(match.charCodeAt(0));
return String.fromCharCode(c);
});
console.log(targetStr); 
// "半角字符aaa全角字符:"

在上面的代碼中,我們用字符集'[\uFF00-\uFFFF]'匹配了所有全角字符,然后利用replace()方法替換為其對應的半角字符。如果后面的回調(diào)函數(shù)中沒有加g修飾符,則只會替換字符串中的第一個全角字符。

通過以上方法,在開發(fā)過程中,我們就可以靈活地處理一些中文字符的匹配、替換問題啦。