ve javascript tırnak işaretleri olmadan sözcükleri ayırmak için rawurldecode ve sıradanifade?

2 Cevap php

işte böyledir:

i php (Containts 2 kelime) bir dize var:

windows "mac os"

i encode it with rawurlencode and put it in the URL after ?name= in an anchor. when i click it i see the following in the browsers url.

index.php? adı = windows% 20% 5C% 22mac% 20os% 5C% 22

ve sonra ben jquery ile Barbekü ile javascript olsun.

var string = $.deparam.querystring();
document.write(string.name);

ve olsun:

 windows \"mac os\"

i javascript ile i çıkış pencereleri "mac os" almak istiyorum. ve daha sonra i kelimeleri bölmek istiyorum:

 array[0] = windows
 array[1] = mac os

bence ilk adım rawurldecode ile dize almak olmalı ama javascript için bu yüzden "mac os \" \ windows "mac os" yerine pencereleri alacak?

ve sonra ikinci aşama, yukarıda dizideki kelimeleri bölmek için) (javascript bölünmüş kullanmak ne sıradanifade olmalıdır?

ive bir çok seçenekleri denedim ama hiçbiri çalışıyor. im burada sıkışmış .. ve gerçekten sinir bozucu. Bu 2 adımda herhangi bir yardım mutluluk duyacağız

2 Cevap

The first part of the question:

Ben aynı girişindeki bir rawurlencode denedim ve gayet iyi çalıştı. Benim tahminim bir şey bölü ilave edilir (belki magic_quotes) ve bunları kaldırmak gerekir:

Senin bağlantı Yani:

<?php $yourstring = 'windows "mac os"'; ?>
<a href="index.php?name=<?php echo rawurlencode(stripslashes($yourstring)) ?>">Click me</a>

İşte bu gibi bakmak kodlamak gerekir:

<a href="index.php?name=windows%20%22mac%20os%22">Click Me</a>

The second part of the question:

Ben bir regex uzman değilim çünkü biraz arama yaptım ve javascript bir diziye dize bölme ile size yardım etmek için hızlı bir şey bulamadı, ama muhtemelen oldukça kolay .... yapılabilir gibi görünüyor.

Doug cevabı bir zeyilname olarak, bu yapacağını yoludur:

var words = string.split( " " );
alert( words[ 0 ] ); // windows
alert( words.slice(1).join( " " ) ); // mac os -- Thank you Elijah Grey