使用Javascript从字符串中提取子字符串

时间:2011-04-27 20:52:43

标签: javascript jquery regex

所有

我在javascript中将以下html作为字符串。我需要在" value"中提取字符串,由指定的分隔符" |"分割。并加入两个变量。

var html = '<div><input name="radBtn" class="radClass" style="margin:auto;" 
       onclick="doSomething();"
       value="Apples|4567" type="radio">
</div>';

必需输出是两个具有以下值的变量:

fruitName = Apples
fruitNumber = 4567

注意:可以有许多名称相同的单选按钮。

6 个答案:

答案 0 :(得分:9)

如果你可以假设你的HTML总是很简单(即只有一个值属性,而没有看起来像值属性的东西),那么你可以这样做:

var fruit = html.match(/value="(.*?)\|(.*?)"/);
if (fruit) {
    fruitName = fruit[1];
    fruitValue = fruit[2];
}

答案 1 :(得分:2)

以下是您可以这样做的方法:

$("input[name='radBtn']").click(function(){
    var val = $(this).val();
    val = val.split("|");

    var fruit = val[0];
    var number = val[1];
});

答案 2 :(得分:1)

var div = document.createElement("div");
div.innerHTML = '<input name="radBtn" class="radClass" style="margin:auto;" onclick="doSomething();" value="Apples|4567" type="radio"></div>';  

var str = div.getElementsByTagName("input")[0].split("|");

var fruitName = str[0];
var fruitNumber = str[1];

/*
Now,
fruitName = "Apples"
and
fruitNumber = 4567
*/

答案 3 :(得分:1)

这是一种方式:

var fruit = (function() {
    var fruits = $(html).find('.radClass').val().split('|');
    return {
        fruitName: fruits[0],
        fruitNumber: fruits[1]
    };
}());

你会得到一个像这样的对象:

fruit.fruitName // Apples
fruit.fruitNumber // 4567

答案 4 :(得分:0)

var coolVar = '123-abc-itchy-knee';
var partsArray = coolVar.split('-');

// Will result in partsArray[0] == '123', partsArray[1] == 'abc', etc

请参阅:How to parse a string in javascript?

答案 5 :(得分:0)

$(function() {
    $("INPUT[name=radBtn]").click(function() {
        var value = $(this).val().split("|");
        var fruitName = value[0];
        var fruitNumber = value[1];

        // Add to an array, ajax post etc. whatever you want to do with the data here
    });
});