2014-03-26 3 views
0

자바 스크립트에서 문자열을 하이픈 처리해야합니다. 문자열은 URL입니다 (예 : '/ home/about /').Javascript는 문자열의 시작과 끝에서 특수 문자를 제거합니다.

현재 정규 표현식이 작동하지만 출력이 원하는대로되지 않습니다.

문자열의 첫 번째/마지막 문자가 특수 문자 인 경우 제거해야하며 하이픈으로 변경하지 말아야합니다.

예 :

var string = '/home/about/'; 
    string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); 
    // Returns -home-about- but I need home-about 

답변

4

:

string = string.replace(/^\/|\/$/g, '').toLowerCase(); 

는 그런 다음 정규식 작업을 할

var s="/home/about/"; 
s.match(/[^\/]+/g).join('-'); // home-about 
+0

이것은 훨씬 좋습니다. –

+0

아, 좋아. 하나의 표현 만이 더 좋습니다. 감사! – CharliePrynn

0

대신 대체 사용을 찾는 그룹.

여기서 특수 문자로 접두어가 붙은 그룹과 그 뒤에 특수 문자가있는 그룹을 찾습니다.

다음으로 '-'을 새 문자열과 연결하면 완료됩니다.

7

^\/은 시작시 /을 의미하고 \/$이면 /을 의미합니다. 끝단에서 양쪽 제거를 처리하기 위해 파이프와 결합되었습니다. 당신은 간단하게이 작업을 수행 할 수

string.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase(); 
+0

파이프 사용이 좋은 –

+0

네, 화려한이다. 대답 해 주셔서 감사합니다. 해결책을 설명해 주셔서 감사합니다. 가능한 경우 대답으로 받아 들일 것입니다. – CharliePrynn

관련 문제