JavaScript:重写url时获取原始查询字符串

时间:2010-07-22 10:10:07

标签: php javascript query-string

我的网页的网址被重写,

  

www.test-me.com/book-cat-white.HTML

  • book is book.php
  • 猫是动物=猫
  • white is color = white

原始网址为

  

www.test-me.com/book.php?animal=cat&color=white

使用PHP,我可以使用$_GET获取值,例如$_GET['animal']。我怎样才能在JavaScript中做同样的事情?是否有我可以访问的变量将返回查询字符串?

2 个答案:

答案 0 :(得分:1)

您可以使用window.location及其属性,但这仅指向http://WWW.test-me.com/book-cat-white.HTML - 服务器端重写的GET参数将无法使用。

你可以尝试:

var match = window.location.pathname.match(/\/book-([^-]+)-([^-]+).html$/i);
// for your example - match contains: ["/book-cat-white.HTML", "cat", "white"]

对正则表达式的进一步解释:

/         # Start Expression
 \/book-   # Match '/book-'
 (         # Start Capture Group 1
  [^-]+     # Match any character other than '-' 1 or more times
 )         # End Capture Group 1
 -         # Match '-'
 (         # Start Capture Group 2
  [^-]+     # Match any character other than '-' 1 or more times
 )         # End Capture Group 2
 .html     # Match '.html'
 $         # Match the end of the string
/i        # End Expression - Case insensitive flag

答案 1 :(得分:0)

您可以query the GET string,但只能重写“公开”,因为这是浏览器看到的内容。

如果您需要内部的,已处理的,未重写的参数,我建议您在PHP中的head中编写它们:

<script type="text/javascript">
query_animal = "<?php echo htmlspecialchars($_GET["animal"]); ?>";
query_color = "<?php echo htmlspecialchars($_GET["color"]); ?>";

</script>