正则表达式查找字符串中的字符串

问题描述:

我有串这样的:正则表达式查找字符串中的字符串

<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检索它不是一个选项。 –

,如果这是你所需要的,不要加载一个完整的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]; 

你可以用一个简单的jQuery函数做这样的

var currentId = $(".my_class").attr('id'); 
+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]; 

如果您只想使用字符串而不是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="','"'); 

否则其他人已经指出了解决方法。