2012-02-28 11 views
5

में अपेक्षित के रूप में काम नहीं कर रहा है, मैं एक चर में निहित यूआरएल से चर निकालने के लिए निम्नलिखित का उपयोग कर रहा हूं। यह आधुनिक ब्राउज़रों में ठीक काम करता है लेकिन आईई 8 में यह पहले चर पर विफल रहता है लेकिन दूसरे पर सफल होता है।.split() IE8

var p = 'http://sagensundesign.com?height=400&width=300'; 

/* Get Height */ 
var h = p.split(/height=([0-9]+)/); 
h = h[1]; 
if (!h) {h = 500}; 
alert(h); 

/* Get Width */ 
var w = p.split(/width=([0-9]+)/); 
w = w[1]; 
if (!w) {w = 800}; 
alert(w); 

अपडेट करें:

यहाँ काम कर समाधान है ... http://jsfiddle.net/cssguru/B42tM/

+0

स्प्लिट में विभिन्न वेब ब्राउज़र पर इसके कार्यान्वयन में विभिन्न बग हैं। कुछ किनारे के मामले हैं, दूसरों को नहीं। मेरा सुझाव है कि आप यह देखने के लिए निम्नलिखित पर एक नज़र डालें कि क्या आप बग को दोहरा सकते हैं और फिर उस जानकारी का उपयोग वर्कअराउंड तैयार करने के लिए कर सकते हैं। http://blog.stevenlevithan.com/archives/cross-browser-split – michaelward82

उत्तर

6

Do आपको उपयोग करने की ज़रूरत है यहाँ विभाजित? आप न सिर्फ match उपयोग कर सकते हैं: ब्राउज़रों कुछ एक regex http://blog.stevenlevithan.com/archives/cross-browser-split साथ विभाजन का उपयोग कर बग हो

var h = p.match(/height=([0-9]+)/)[1]; 

के रूप में। यदि आपको रीगेक्स क्रॉस ब्राउज़र के साथ split का उपयोग करने की आवश्यकता है तो आप xregexp पर देख सकते हैं जो एक लाइब्रेरी है जो ब्राउज़रों में regexs को ठीक करती है।

+0

सहायता के लिए धन्यवाद। –

2

उपयोग p.match (regex) के बजाय:

http://jsfiddle.net/B42tM/3/

/* Get Height */ 
var h = p.match(/height=([0-9]+)/); 
h = h[1]; 
if (!h) {h = 500}; 
alert(h); 

/* Get Width */ 
var w = p.match(/width=([0-9]+)/); 
w = w[1]; 
if (!w) {w = 800}; 
alert(w); 
+0

मदद के लिए धन्यवाद! –

0

आप एक मैच या कार्यकारी अभिव्यक्ति के साथ दोनों आयाम पा सकते हैं:

var p = 'http://sagensundesign.com?height=400&width=300'; 

var siz=p.match(/((height|width)=)(\d+)/g); 


alert(siz) 

/* returned value: (Array) 
height=400, width=300 
*/ 
1

कुछ वैध प्रतिक्रियाओं किया गया है, लेकिन आप एक समारोह मैं यूआरएल से GET मानकों को पुनः प्राप्त करने के लिए उपयोग में रुचि हो सकती।

var get = function (name, url) { // Retrieves a specified HTTP GET parameter. Returns null if not found. 
    url = (typeof (url) === "undefined" ? window.location.href : url); 

    var regex = new RegExp("[?&]" + name + "=([^&#]*)"); 
    var results = regex.exec(url); 
    var output = (results ? results[1] : null); 

    return output; 
}; 

आप इसे इस तरह उपयोग कर सकते हैं।

var url = 'http://sagensundesign.com?height=400&width=300'; 

var h = get("height",url); 
var w = get("width",url);