2012-06-15 227 views
0

我有串這樣的:正則表達式查找字符串中的字符串

<input name="my_name" id="my_id" value="my_value" class="my_class" /> 

我想找個什麼是「ID」中,即「添加my_id」。

在此先感謝

+1

'document.form_name.my_name.id'應該爲你提供你想要的。 –

+0

你正在編寫程序來提取數據的語言是什麼? – nhahtdh

+0

它在html/javascript中,但在這個特定的問題中,我只有一個字符串。所以通過dom檢索它不是一個選項。 –

回答

0

,如果這是你所需要的,不要加載一個完整的DOM操作庫。

如果你有一個字符串,你可以把它變成一個DOM元素,並獲得id屬性。

var my_string = '<input name="my_name" id="my_id" value="my_value" class="my_class" />'; 

var div = document.createElement('div'); 
div.innerHTML = my_string; 

var id = div.firstChild.id; 

或者只是使用正則表達式...

var my_string = '<input name="my_name" id="my_id" value="my_value" class="my_class" />'; 

var id = /id\s*=\s*"([^"]+)"/.exec(my_string); 

if (id) id = id[1]; 
0

你可以用一個簡單的jQuery函數做這樣的

var currentId = $(".my_class").attr('id'); 
+0

我有一個字符串 –

0

如果你絕對必須使用解析HTML元素的正則表達式的屬性,下面的JavaScript代碼段應該做的伎倆。

var regex = /id="([^"]+)"/ 
var string = '<input name="my_name" id="my_id" value="my_value" class="my_class" />'; 
var matches = string.match(regex); 

var id_val = matches && matches[1]; 
0

如果您只想使用字符串而不是DOM模型,然後使用。

function TextBetween (str,first,second) { 
    if (str==null) { 
     alert("Unexpected page formatting, please reload."); 
     return ""; 
    } 
    var x = str.indexOf(first) + first.length; 
    var z = str.substr(x); 
    var y = z.indexOf(second); 
    return z.substr(z,y); 

    } 

var inputString = '<input name="my_name" id="my_id" value="my_value" class="my_class" />'; 
var id = TextBetween(inputString,'id="','"'); 

否則其他人已經指出瞭解決方法。

相關問題