2016-10-21 3 views
0

javascript에서 정규 표현식을 만들어 href 링크에서 공백을 제거하고 공백을 하이픈으로 바꾸는 데 도움이 될 수 있습니까? 예를 들어href 링크에서 공백을 제거하는 Regex

:

<a class="card" href=http://www.eee.com/sffsd/sdfs/Aks's Reb outsider/4234234234324> 

<a class="card" href=http://www.eee.com/sffsd/sdfs/Aks's-Reb-outsider/4234234234324> 
+1

무엇을 시도 했습니까? 'link.href = link.href.replace (//g, '-')'충분해야합니까? –

+2

당신은 js에서 원하지만 php로 태그되었습니다; 왜? 이것은 구글이 "공백을 제거하는 것"에 그렇게 어렵지 않아야한다. 너는 우리에게 너의 노력을 보이지 않았다. –

+0

@NewbeeDev'trim'은이 문제를 해결하지 못합니다. 'trim'은 마침표와 앞 글자 만 제거합니다. – vaso123

답변

1

몇 가지로 그것을 내가 코멘트에 말했듯이, 대시와 공백을 대체하는 것은 쉬운해야 변환해야합니다 같은 :

link.href = link.href.replace(/ /g, '-'); 
//or in php: 
$href = preg_replace('/ /', '-', $href); 

(JS 만 해당) : g 플래그를 사용하면 전체 문자열에서 공백을 검색 할 수 있습니다. s로 바꾸고 모두 대시로 바꿉니다.

더 좋은 질문은 다음과 같습니다. 처음에는 공간이 어떻게 확보 되었습니까?

첫 번째 호출 지점은 마크 업을 생성하는 코드를보고 거기에서 문제를 해결하는 것입니다. 깨진 코드의 출력을 수정하는 코드를 작성하면 안됩니다. 버그를 수정하고 수용하지 마십시오.

논란의 여지는 URL의 정규식을 사용하지 않고 황갈색, URI가 ... %20 등 모든 공간을 변환 encodeURI 같은 함수를 통과 했어야 탈출 제대로해야

+0

아마 서구 친화적 인 URL을 동적으로 생성하려고합니다. –

0

사용이 정규식 형식

link.href = link.href.replace(/\s/g, '-'); 
+0

'\ s'는 공백뿐만 아니라 모든 [유니 코드 공백 문자] (http://www.fileformat.info/info/unicode/category/Zs/list.htm)와 일치합니다. 쓰기'/ /'어쨌든 더 짧습니다 –

관련 문제