使用Javascript从字符串中提取子字符串
全部, 我将以下html作为javascript中的字符串。我需要提取“value”中的字符串,由指定的delimeter“|”分割,并放入两个变量使用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>'
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