2011-11-13 2 views
0

사용자가 JavaScript를 텍스트 상자에 입력 할 수있는 프로그램이 있으며 HTML 뷰어 또는 iframe에서 실행됩니다. "이미지 삽입"과 같은 옵션을 사용하면 텍스트 상자에문자열의 텍스트 일부를 바꾸라는 메시지 표시

var $'Image Name' = document.createElement('img'); 
$'Image Name'.src = $'Image URL'; 
$'Image Name'.style.position = 'absolute'; 
document.body.appendChild($'Image Name'); 

을 삽입 할 수 있습니다. 사용자가 옵션 "이미지 삽입"을 선택하고 각 $''을 통해 대화 상자를 표시하고이를 대체 할 항목이 있는지 묻습니다. 따라서 첫 번째 $'Image Name'은 사용자에게 변수 이름을 묻는 메시지가 표시되므로 모두 replace("$'Image Name'", userText)입니다. $'Image Name'이 대체되고 사용자에게 동일한 메시지가 다시 표시되지 않습니다. 어떤 아이디어?

replace(/^\$\"|\'.$\"|\'/gi, function ($string) { return prompt($string);}); 

을하지만 따옴표, 따옴표 내부가 아닌 텍스트와 일치, 그리고 난 당신이 정규식을 해결할 수 있다면, 내가 나머지를 알아낼 수, 정규식을 모르는 :이 교체합니다.

+0

읽을 수있는 형식으로 질문의 서식을 지정하십시오. http://stackoverflow.com/editing-help – NullUserException

답변

0

난 당신이 뭔가를 원하는 것 같아요 :

replace(/\$'([^']+)'/g, function (s, contents) { return prompt(contents); }); 

내가 이중 인용 문자열이 발생할 경우이 단일 인용 문자열은 달러 기호 종료 발생하는 경우 오작동, 또는 것이라는 점을 언급해야하지만 $' 또는 그 외의 것을 포함하도록; 이런 종류의 사건을 처리 할 수 ​​있어야합니까? 텍스트 영역의 내용을 완전히 제어하는지 여부 또는 사용자가 편집중인 내용인지 여부는 질문에서 분명하지 않습니다.

+0

결국 사용자가 직접 만들 수도 있지만 대부분 응용 프로그램에 포함되므로 너무 중요하지 않다고 생각합니다. 지금은 제대로 작동하고 싶습니다. –

관련 문제