2012-07-03 55 views
2

獲取部分值比方說,我有我想要分配FOO給一個變量「foo_bar這樣的名稱」從字符串中的jQuery

的價值,以及酒吧輸入框。我永遠不知道每一個的長度。本質上,_左側的任何內容都應該是一個變量,而右側的所有內容都應該是另一個變量。

你會如何在jQuery中做到這一點?

+0

字符串操作與實現[標準的JS String方法](https://developer.mozilla.org/en/JavaScript/Refer ence/Global_Objects/String/#Methods_2)(這是 - 我假設 - 爲什麼jQuery不提供這樣做的方法)。 – nnnnnn

+0

var str =「foo_bar」,my_arr = str.split(/ _ /); – Serjio

回答

1

你不需要jQuery,你可以用普通的JavaScript來做到這一點。正則表達式是一種替代方法,或者如果您知道總是有'_'分隔符,則可以使用indexOf方法找到它的位置並從那裏拆分。

或者用一個例子:

var val = $("#inputId").val(); 
int separatorIndex = val.indexOf('_'); 
var first = val.substring(0, separatorIndex); 
var second = val.substring(separatorIndex + 1); 
+0

感謝卡洛斯,我會在幾分鐘內將答案標記爲答案。 –

1

您可以使用此代碼:

var str = "foo_bar"; // Change with input data 
var index = str.indexOf("_"); 
if (index < 0) return false; // Change this with your '_' not found code 
var foo = str.substr(0, index); 
var bar = str.substr(index + 1); 
+0

當'index' var等於'-1'時,你不檢查情況。 – Serjio

+0

他沒有要求驗證,但如果它讓你滿意,我就添加它。他所要求的是如何去做,而不是如何驗證它是否是一個正確形成的字符串。 – Aidiakapi

1
var a = 'foo_bar'​; 
​var b = a.split('_')​; 

​var left = b[0]​; 
var right = b[1​]; 
0

對於各種各樣的緣故:

var 
str = 'foo_bar', 
left = /(.+)_/.exec(str)[1], 
right = /_(.+)/.exec(str)[1]