2012-04-23 8 views
15

मैं इसे परिवर्तित करना चाहता हूं: "#FFFFFF" इस पर: 0xFFFFFF। Eval का उपयोग किए बिना यह कैसे संभव है?जेएस में एक स्ट्रिंग से हेक्स पूर्णांक कैसे प्राप्त करें?

अग्रिम धन्यवाद,

+0

मैं * सुनिश्चित करें कि * इस एक नकली ... काश है "संबंधित प्रश्नों" कर रहा हूँ भाषा टैग के बारे में बेहतर थे: -/ –

+1

@ डैनी: "हेक्स वैल्यू" से, क्या आपका मतलब ** संख्यात्मक ** मान FFFFFF हेक्स (उदाहरण के लिए, 16777215 दशमलव?) है। यदि ऐसा है, तो बस "संख्यात्मक मान" कहें, "हेक्स" शब्द डालने से हमें स्ट्रिंग भूमि में ले जाता है। मुझे लगता है कि आप शायद संख्यात्मक मतलब था, यद्यपि। –

+1

@ टीजे। क्रॉउडर मैंने शीर्षक –

उत्तर

33

बंद "#" पट्टी और parseInt() का उपयोग करें।

var hex = parseInt(str.replace(/^#/, ''), 16); 

तब, यदि आप यह हेक्स में देखना चाहते हैं, तो आप .toString() उपयोग कर सकते हैं:

alert(hex.toString(16)); 
+1

संपादित किया है, मैं दक्षता के लिए 'प्रतिस्थापन() 'पर' substring()' (जैसा कि @ TJCrowder के उत्तर में) पसंद करता हूं। –

+1

@ मार्ककिड: यह पूरी तरह से निर्भर करता है कि OP * वास्तव में * क्या चाहता है, जो प्रश्न से स्पष्ट नहीं है। यह हो सकता है ('0xFFFFFF' पर उद्धरणों की कमी को देखते हुए) कि ओपी तब संख्यात्मक मूल्य चाहता है (जो, ज़ाहिर है, सवाल का शीर्षक पूरी तरह गलत कर देगा - पहली बार नहीं!)। –

+0

धन्यवाद, यह –