我无法弄清楚如何从我的PHP中获取与Javscript相同的结果。特别是,Javascript总是省略反斜杠。请忽略随机前进和反斜杠;我把它们放在那里,以便我可以在Windows系统或任何其他系统上覆盖我的基础。输出:
Input String: "/root\wp-cont ent\@*%'i@$@%$&^(@#@''mage6.jpg:"
/root\wp-content\image6.jpg (PHP Output)
/rootwp-contentimage6.jpg (Javscript Output)
我将不胜感激任何帮助!
PHP:
<?php
$path ="/root\wp-cont ent\@*%'i@$@%$&^(@#@''mage6.jpg:";
$path = preg_replace("/[^a-zA-Z0-9\\\\\/\.-]/", "", $path);
echo $path;
?>
Javascript:
<script type="text/javascript">
var path = "/root\wp-cont ent\@*%'i@$@%$&^(@#@''mage6.jpg:"; //exact same string as PHP
var regx = /[^a-zA-Z0-9\.\/-]/g;
path = path.replace(regx,"");
document.write("<br>"+path);
</script>
答案 0 :(得分:3)
你的问题是你没有逃避JS字符串中的反斜杠,你应该总是这样做(即使在PHP中),如果你的意思是反斜杠。
示例:
var path = "/root\wp-cont ent\@*%'i@$@%$&^(@#@''mage6.jpg:";
alert(path);
path = "/root\\wp-cont ent\\@*%'i@$@%$&^(@#@''mage6.jpg:";
alert(path);
答案 1 :(得分:0)
是的,Qtax是正确的,那么你可以使用这个:
var regx = /[^a-zA-Z0-9\.\/-\\]/g;