2011-07-30 439 views
3

並感謝首先看我的帖子。CSS字符串長度

今天我的問題是關於CSS。我有一個連接到數據庫並創建XML流的腳本。在此流內是一個電話號碼字符串,它被格式化爲8005551212

此XML流被分解並解析到我的最終頁面。

但是我的最後一頁上,我需要顯示此字符串作爲(800)555-1212

CSS真的有這個字符串轉換的能力?我一直在閱讀了關於`自動換行:打破字,但我可能去錯了路....再次

感謝, --Matt

+0

你不能在CSS。如果你不能改變爆炸XML的東西,你可以使用JavaScript進行後處理 – Dani

+0

Ahhh ......好的,謝謝你的高舉,祝你有美好的一天! –

回答

5

使用JavaScript這一點,不是CSS切換出document.write

這裏是一個非常簡單的單行JS正則表達式的功能,爲你做的工作:

var formatted_phone = plain_phone.replace(/^(\d{3})(\d{3})(\d{4})$/,"($1)$2-$3"); 

(注意,該線以上假設的電話號碼已經知道在正確的格式;不做任何驗證)

希望有所幫助。

4

你可以用這樣的JavaScript做

var n = '8005551212'; 
var n1 = n.substring(0,3); 
var n2 = n.substring(3,6); 
var n3 = n.substring(6,11); 

document.write("(" + n1 + ")" + n2 + "-" +n3); 

http://jsfiddle.net/jasongennaro/N5Gsu/

基本上,你的字符串截斷成若干塊,然後用新的位再相加,然後你想

如果您需要爲幾個數字完成,您可以使用一個函數。

var n = ['8005551212','8005551213','8005551214']; 

function formatNumbers(){ 
    for(var i=0; i<n.length; i++){ 
     var n1 = n[i].substring(0,3); 
     var n2 = n[i].substring(3,6); 
     var n3 = n[i].substring(6,11); 
     document.write("(" + n1 + ")" + n2 + "-" + n3 + "<br />"); 
    } 
} 

formatNumbers(n); 

http://jsfiddle.net/jasongennaro/N5Gsu/1/

要建立從@Dennis的評論,爲.innerHTML

document.getElementById("a").innerHTML += 
    "(" + n1 + ")" + n2 + "-" + n3 + "<br />"; 

http://jsfiddle.net/jasongennaro/N5Gsu/2/

+0

好的答案,但你可能想要'document.getElementById(「foo」)。innerHTML ='而不是'document.write' – Dennis

+0

@Dennis。謝謝。我正在爲小提琴做這件事,但你的話是正確的。回答編輯。 –

+0

更容易編寫一行正則表達式替換,而不是手動將字符串切分爲位。:-) – Spudley

0

CSS無法做到這一點,需要注意的CSS應該用於造型的內容管理和行爲。

相反,使用JavaScript來實現這一目標: http://jsfiddle.net/Ke6Ns/

function formatPhone(phone) { 
    return "("+phone.substring(0,3)+")"+phone.substring(3,6)+"-"+phone.substring(6,11); 
}