2012-04-23 49 views
15

Tôi muốn chuyển đổi điều này: "#FFFFFF" thành: 0xFFFFFF. Làm thế nào là nó có thể mà không cần sử dụng eval?Làm thế nào để lấy số nguyên hex từ một chuỗi trong JS?

Xin cảm ơn trước,

+0

Tôi * chắc chắn * này là một bản sao ... Tôi muốn "câu hỏi có liên quan" thông minh hơn về các thẻ ngôn ngữ: -/ –

+1

@ Danny: Theo "giá trị hex", bạn có nghĩa là giá trị ** FFFFFF giá trị ** ** (ví dụ: 16777215 thập phân không?). Nếu vậy, chỉ cần nói "giá trị số", đặt từ "hex" vào đưa chúng ta vào đất chuỗi. Tôi nghĩ rằng bạn có thể có nghĩa là số, mặc dù. –

+1

@ T.J. Crowder Tôi đã chỉnh sửa tiêu đề –

Trả lời

33

Bỏ "#" và sử dụng parseInt().

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

Sau đó, nếu bạn muốn thấy nó trong hex, bạn có thể sử dụng .toString():

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

Tôi muốn 'substring()' (như trong câu trả lời của @ TJCrowder) trên 'replace()', vì lợi ích của hiệu quả. –

+1

@MarkReed: Nó hoàn toàn phụ thuộc vào những gì OP * thực sự * muốn, mà không rõ ràng từ câu hỏi. Nó có thể (do thiếu dấu ngoặc kép trên '0xFFFFFF') mà OP muốn sau đó giá trị số (mà, tất nhiên, sẽ làm cho tiêu đề của câu hỏi hoàn toàn sai - không phải là lần đầu tiên!). –

+0

Cảm ơn bạn, nó hoạt động –

Các vấn đề liên quan