所以情况就是这样:
我在php中有一个字符串(含有2个单词):
windows "mac os"
我使用rawurlencode对其进行编码,然后将其放在锚点中?name =之后的URL中。 当我点击它时,我在浏览器URL中看到以下内容。
的index.php?名称=窗户%20%5C%22mac%20OS%5C%22
然后我用jquery bbq的javascript获取它。
var string = $.deparam.querystring();
document.write(string.name);
并获得:
windows \"mac os\"
当我用javascript输出时,我想获得windows“mac os”。然后我想把这些词分成:
array[0] = windows
array[1] = mac os
我认为第一步应该是使用rawurldecode获取字符串但是对于javascript所以我会得到windows“mac os”而不是windows \“mac os \”?
然后第二步应该是在javascript split()中使用什么regexp将它拆分为上面数组中的单词?
我尝试了很多选项,但没有一个可行。我被困在这里..它真的很令人沮丧。任何有关这两个步骤的帮助将不胜感激
答案 0 :(得分:1)
问题的第一部分:
我在同一输入上尝试了rawurlencode
,它运行正常。我的猜测是添加斜杠(可能是magic_quotes
),你需要删除它们:
所以对于你的链接:
<?php $yourstring = 'windows "mac os"'; ?>
<a href="index.php?name=<?php echo rawurlencode(stripslashes($yourstring)) ?>">Click me</a>
应将其编码为如下所示:
<a href="index.php?name=windows%20%22mac%20os%22">Click Me</a>
问题的第二部分:
我做了一些搜索,因为我不是正则表达式专家,并且找不到任何快速帮助你将字符串拆分成javascript中的数组,但看起来它可以完成....可能很漂亮容易。
答案 1 :(得分:1)
作为Doug答案的附录,你这样做的方式是:
var words = string.split( " " );
alert( words[ 0 ] ); // windows
alert( words.slice(1).join( " " ) ); // mac os -- Thank you Elijah Grey