如何清理Java脚本变量中的str_place函数

时间:2017-10-05 作者:Maqk

我在javascript中有以下输出日期的代码。使用反斜杠,我将这些字符串替换为str_replace 删除反斜杠,但我无法使用任何转义函数esc_js.

Stored Days Array

array (size=2)
  0 => string \'4/7/2018\' (length=8)
  1 => string \'11/18/2017\'(length=10)

The code

var disabledDays = <?php echo str_replace( \'\\\\/\', \'/\', wp_json_encode( $iva_disable_days ) ); ?>;

Tried Code which is not working

var disabledDays = <?php echo esc_js( str_replace( \'\\\\/\', \'/\', wp_json_encode( $iva_disable_days ) ) ); ?>;
结果输出

var disabledDays = [&quot;4/7/2018&quot;,&quot;11/18/2017&quot;];
如何在中清理上述部分The Code

1 个回复
最合适的回答,由SO网友:ssnepenthe 整理而成

esc_js() 用于转义HTML属性中使用的数据。

如果要转义数据以在内联脚本中使用,wp_json_encode() 应该足够了。

例如:

var disabledDays = <?php echo wp_json_encode( $iva_disable_days ); ?>;
这将输出:

var disabledDays = ["4\\/7\\/2018","11\\/18\\/2017"];
如果在dev tools控制台中检查该变量,您将看到它被正确解析:

enter image description here

但是,如果您绝对不希望使用转义斜杠(不推荐),则第二个参数wp_json_encode() 是选项的位掩码:

var disabledDays = <?php echo wp_json_encode( $iva_disable_days, JSON_UNESCAPED_SLASHES ); ?>;
这将输出:

var disabledDays = ["4/7/2018","11/18/2017"];
有关可用选项的列表,请检查PHP json_encode() docs.

结束

相关推荐

WP 3.3.1无法使jQuery Datepicker工作

首先我想告诉你HAVE 阅读帖子:jQuery UI Datepicker not working已经我按照指示做了,但我还是做不到。我将WP 3.3.1与标准主题twentyeleven一起使用。还有另外两个jquery正在运行:“jExpand.js”和“sorttable.js”,就是这样。非常简单。在函数中,我添加了以下内容:add_action( \'wp_print_scripts\', \'wp33r01_date_picker\' ); function wp33r01_