Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript从字符串中提取子字符串_Javascript_Jquery_Regex - Fatal编程技术网

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

使用Javascript从字符串中提取子字符串,javascript,jquery,regex,Javascript,Jquery,Regex,全部, 我将以下html作为javascript中的字符串。我需要提取“value”中的字符串,由指定的delimeter“|”分割,并放入两个变量 var html = '<div><input name="radBtn" class="radClass" style="margin:auto;" onclick="doSomething();" value="Apples|4567" type="radio"> </div>'

全部,

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

var html = '<div><input name="radBtn" class="radClass" style="margin:auto;" 
       onclick="doSomething();"
       value="Apples|4567" type="radio">
</div>';
注意:可以有许多同名单选按钮

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

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

请参阅:

以下是您的操作方法:

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

    var fruit = val[0];
    var number = val[1];
});
var div=document.createElement(“div”);
div.innerHTML='';
var str=div.getElementsByTagName(“输入”)[0]。拆分(“|”);
var-furtname=str[0];
var-furtnumber=str[1];
/*
现在,
水果名=“苹果”
和
数字=4567
*/

如果您可以假设您的HTML总是简单的(即只有一个值属性,没有其他看起来像值属性的),那么您可以执行以下操作:

var fruit = html.match(/value="(.*?)\|(.*?)"/);
if (fruit) {
    fruitName = fruit[1];
    fruitValue = fruit[2];
}
fruit.fruitName // Apples
fruit.fruitNumber // 4567
这里有一个方法:

var fruit = (function() {
    var fruits = $(html).find('.radClass').val().split('|');
    return {
        fruitName: fruits[0],
        fruitNumber: fruits[1]
    };
}());
您将得到如下对象:

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

如何首先从html字符串中获取值?我无法单击单选按钮。。它是一个html字符串。。请再看一遍这个问题。。thanksAh我明白了,您希望在附加到DOM之前从字符串中获取值。我可以问一下为什么吗?在这个帖子里回答的每个人都没有读到这个问题。这不是HTML,而是字符串。我真的需要更熟练地使用正则表达式:/@Vincent我在我的正则表达式中添加了一个额外的
,以防字符串中的某个地方有另一个
|
。我认为您希望在defaultValue属性或value属性上调用split,而不是在输入元素本身上。
fruit.fruitName // Apples
fruit.fruitNumber // 4567