提示用户替换字符串中的某些文本部分

时间:2011-11-13 02:35:52

标签: javascript regex actionscript-3 air

我有一个程序,允许用户在文本框中键入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);});

但它匹配引号,而不是引号内的文本,我甚至不知道正则表达式,如果你能解决正则表达式,我可以弄清楚其余部分。

1 个答案:

答案 0 :(得分:0)

我猜你想要这样的东西:

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

虽然我应该提一下,如果单引号字符串恰好以美元符号结尾,或者双引号字符串碰巧包含$',或者诸如此类,那么这将会出错;你需要能够处理这些案件吗? (从您的问题来看,您是否完全控制textarea的内容,或者您​​的用户是否正在编辑内容,这一点并不明显。)