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

时间:2012-06-15 03:19:21

标签: javascript regex

我有这样的字符串:

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

我想找到“id”中的内容,即“my_id”。

提前致谢

4 个答案:

答案 0 :(得分:0)

你可以使用像这样的简单jquery函数来完成它

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

答案 1 :(得分: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];

答案 2 :(得分: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];

答案 3 :(得分: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="','"');

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