2013-10-29 1 views
2

나는 '약간 못생긴 #string'을 '약간 추한 문자열'로 바꿀만한 것을 찾고 있습니다. 유효한 CSS 식별자 (ids 및 클래스 이름)에 대한 규칙이 있으며 해당 라이브러리가 해당 규칙을 따르면 멋질 것입니다.유효한 CSS 클래스 이름으로 문자열을 slugify하는 자바 스크립트 라이브러리가 있습니까?

+2

필자가 아는 한 '일부 못생긴 # 문자열'은 사실 유효한 식별자입니다.) – ComFreek

+0

마음에 들지 않는 문자를 제거하고 공백 문자를'-'로 대체하십시오. 간단한 정규 표현식 교체와 같은 소리가납니다. 도서관이 필요 없다. – Pointy

+1

@ComFreek :'some ugly # string'은 CSS 식별자로 사용할 수 없습니다. ''ugly #string ''과''Some ugly # string''는'[]'표현식과 함께 사용할 수있는 유효한 속성 값이지만 CSS (또는 jQuery, 또는'querySelector')가 이해할 수는 없습니다 sugary'#'와'.'를 갖는 식별자. 첫 번째 문자가 숫자가 아니고 처음 두 문자가 '-'또는 '-'다음에 숫자가 오는 경우 영숫자 ('-'및 '_')가 포함 된 CSS 표준에 따라 식별자가 사용됩니다. – sqykly

답변

1
function identify(ugly) { 
    var step1 = ugly.replace(/^[^-_a-zA-Z]+/, '').replace(/^-(?:[-0-9]+)/, '-'); 
    var step2 = step1 && step1.replace(/[^-_a-zA-Z0-9]+/g, '-'); 
    return step2; 
} 

어때요?

편집 됨 : 다른 문자를 사용하지 마십시오. ugly이 잘못된 문자로 시작하지 않으면 작동하지 않습니다. 이 것은 어떤 것에도 효과가 있습니다. 또한이 라이브러리를 identifyUgly.js이라고 부릅니다.

+0

이것은 정확하게 내가 한 것입니다. 감사합니다! –

관련 문제