get token จาก URL ได้ยังไงครับ (Javascript)

เริ่มโดย affsom, 21 สิงหาคม 2017, 01:32:05

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

affsom

สมมุติรูปแบบ url เป็นได้หลายแบบ

แบบที่1 httป://gettoken/index.php?action=test&token=aaaaa
แบบที่2 httป://gettoken/index.php?action=test&token=aaaaa&login=admin
แบบที่3 httป://gettoken/index.php?action=test&login=admin&token=aaaaa&expires=3600
แบบที่4 httป://gettoken/index.php?action=test&login=admin&expires=3600&token=aaaaa

ในบาง url token มีการย้ายตำแหน่งอาจเป็นตำแหน่งแรก หรือกลาง หรือตำแหน่งสุดท้ายตามตัวอย่างครับ

ต้องการเก็บค่า token ซึ่งมี length คงที่คือ 5 ตัวอักษร

:wanwan011: :wanwan011:

chaynuwong

#1
<?
$t[0]='//gettoken/index.php?action=test&token=aaaaa';
$t[1]='//gettoken/index.php?action=test&token=aaaaa&login=admin';
$t[2]='//gettoken/index.php?action=test&login=admin&token=aaaaa&expires=3600';
$t[3]='//gettoken/index.php?action=test&login=admin&expires=3600&token=aaaaa';

for($i=0;count($t)>=$i;$i++){
echo $t[$i].'<br>';
 preg_match('/token=(....)/',$t[$i],$mat);
echo $mat[0].'<br>';
echo $mat[1].'<br>';
}

?>
:wanwan016: :wanwan016:
อ่านไม่จบ javascript  ผมทำมา php   :wanwan023: :wanwan023:

infamous

แบบ  JS ครับ
ถ้า token เป็นแค่ 0-9 A-Z a-z โค๊ดด้านล่างใช้ได้ครับ แต่ถ้ามีพวก special chars ต้องดักเพิ่มใน match() อีกทีครับ


var urls=[
'httป://gettoken/index.php?action=test&token=aaaaaxxx',
'httป://gettoken/index.php?action=test&token=aaaaayyy&login=admin',
'httป://gettoken/index.php?action=test&login=admin&token=aaaaazzzz&expires=3600',
'httป://gettoken/index.php?action=test&login=admin&expires=3600&token=aaaaannnn'];

for(var i=0;i<urls.length;i++){
console.log(urls[i].match(/token=([a-zA-Z0-9]+)/)[1]);
}

tanutsun

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}


var token = getParameterByName('token');

cr.https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript

kumabro


var url = new URL('http://gettoken/index.php?action=test&login=admin&token=aaaaa&expires=3600');
var token = url.searchParams.get('token');
console.log(token);


:wanwan007: