Соответствие регулярному выражению в задачах Javascript и PHP - PullRequest
0 голосов
/ 19 марта 2010

Я не могу понять, как получить из моего Javscript тот же результат, что и из моего PHP. В частности, 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>

Ответы [ 2 ]

3 голосов
/ 19 марта 2010

Ваша проблема в том, что вы не избегаете обратной косой черты в строке JS, что вам всегда следует делать (даже в PHP), если вы имеете в виду обратную косую черту.

Пример:

var path = "/root\wp-cont  ent\@*%'i@$@%$&^(@#@''mage6.jpg:";
alert(path);
path = "/root\\wp-cont  ent\\@*%'i@$@%$&^(@#@''mage6.jpg:";
alert(path);
0 голосов
/ 19 марта 2010

Да, Qtax правильный, тогда вы можете использовать это:
var regx = /[^a-zA-Z0-9\.\/-\\]/g;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...