RegEx和AJAX在使用双引号时遇到问题

时间:2012-03-01 05:02:36

标签: php regex jquery

我遇到了一些麻烦:

的Javascript

 var data = $.param ( { caption: captionBox.val() } );
 //then I send the str via ajax

PHP

 urldecode ( $_POST ( 'caption' ) );
 preg_match("!caption=(?<caption>[a-zA-Z0-9\!\#\@%\$\(\)\[\]\+\?\.\^\\\;\:\<\> \&']+)!", $caption, $matches);

适用于普通字符串和具有大多数特殊字符的字符串,但是,双引号永远不会起作用。我很确定这是reg ex的一个问题,但是我试过“,”,“\”“ - 很多变化,但仍然没有好处。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

即使POST主体在使用JavaScript发送数据时看起来像“caption = ...”,您也不必手动解析它。 PHP为您完成工作:

$captionBox = urldecode($_POST['caption']);

$captionBox现在包含您的字符串,由javascript中的captionBox.val()提供。