我有一个用数据替换占位符的基本模板类,但是如果没有替换占位符,我将其替换为空字符串。
我在使用包含 jQuery 的模板时遇到问题。它将一些 jquery 语句视为占位符并删除它们使 javascript 无效。
目前,这是我用来删除以前未替换的占位符的方法:
preg_replace("/\\$[^\"' \|\[]+?;/", "", $tmp);
它成功地$get.q.htmlentities();
用一个空字符串替换了它(这很好),但是对于像下面这样的 javascript,它会删除等号之后的所有内容。
var val = $(this).val();
var me = $(this);
我认为最好的解决方案是忽略括号之间具有值的任何内容,但我不确定如何将其添加到我当前的preg_replace
陈述中。我可以做些什么来添加这个,或者我可以做些什么更好?
占位符格式
占位符有几种格式:
- 以 a 开头,以 a
$
结尾;
- 占位符只能包含
a-zA-Z0-9
,.
,_
,(
和)
$
和之间不能包含空格;
- A
(
可能不会出现在$
- 括号之间不能有任何内容
有效示例(替换为空字符串):
$placeholder;
$get.q.htmlentities().json_encode();
无效的例子(别管它):
$(this).placeholder();
$()placeholder;
$10.00 per/hr;