2012-12-09 4 views
1

min: #000000max: #FFFFFF 범위의 문자열을 기반으로 CSS 색상을 생성하는 함수가 필요합니다. 입력 문자열의 길이 나 임의의 문자가 변경되면 함수는 다른 색상을 반환해야하지만 동일한 문자열 입력에 항상 같은 색상을 반환해야합니다. 예를 들어JS : 문자열을 기반으로 CSS 색상 코드가 필요합니다.

:

f("Reddit") ==>#FF0000 

f("Smith") ==>#FFC0CB 

f("Smixh")==>#F008FF 

f("Smith") ==>#FFC0CB 

f("foo")==>#FF00FF 

f("Reddit") ==>#FF0000 

등등. 그걸 어떻게하는 지 아는가?

+0

이 문자열의 자질의 종류에 완전하게 의존 당신이 색깔에 영향을 미치길 원한다. 전의. 문자열의 길이는 어두운 색을 의미합니다. –

+0

다른 문자열에 대한 컬러 복사가 괜찮습니까? 고유 한 문자열은 문자열 자체를 관리하는 규칙이 없으면 보장 할 수 없습니다. 예를 들어 최소/최대 문자 수는 얼마입니까? –

답변

14

나는 hash the string을 거라고하고 16 진수 색상 코드로 육각 검사의 처음 6 개 문자를 사용

function color(string) { 
    return '#' + md5(string).slice(0, 6); 
} 

데모 : http://jsfiddle.net/4PMnA/48/

+0

천재! 고마워, 그래, 잘 작동합니다 그래, – hanshenrik

+0

CRC32 MD5보다 나은 (빠른) 옵션이 될 수도 있습니다. – DCoder

+2

jsfiddle 데모가 더 이상 작동하지 않았습니다 (md5 lib 로딩 문제). 고정 버전 : http://jsfiddle.net/4PMnA/48/ – Stefaan