2014-04-26 1 views
0

HTML + JS가 포함 된 Windows 8 앱을 만들고 사용자가 일부 데이터를 입력 할 수있는 입력란을 갖습니다. 페이지를 다시 방문 할 때 <div>을 입력과 동일하게 설정합니다. URL을 입력하여 링크로 변환 할 수도 있습니다. 필자가 읽은 모든 예제는 태그에 태그를 포함하는 것에 대해 읽었지 만 div에 텍스트를 쓰면 사용자가 잘못된 HTML을 데이터로 작성한 경우 div.innerHTML 대신 div.innerText를 사용합니다. 앱이 충돌합니다.JavaScript 문자열의 링크 찾기 및 분리

잘못된 HTML을 입력하는 사용자에 대해 안전을 유지하면서도 여전히 텍스트에 하이퍼 링크가있을 수 있습니까?

+0

어쩌면 정규식 (정규 표현식) –

답변

2

당신은 다음 replace URLs with links, escape user data first 필요하고 요소

+0

감사합니다 모양에 데이터를 기록 할 innerHTML 속성을 사용하여,이 정확히 내가 찾던 정보입니다. 나는 "탈출하는 사용자 데이터"에 대해 잘 몰랐다. – rbyrne

1

innerHTML을 사용하여 URL을 링크로 바꾸려면이 작업을 수행 할 수 있습니다.

// ... first write to element.innerText if you want to then: 
    var url_regex = /(\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|])/ig; 
    element.innerHTML = element.innerHTML.replace(url_regex, "<a href=\"$1\">$1</a>");