如何从字符串中获取两个变量
How to get two variables from the string?
>我有这个字符串:'foo = bar; this = is; not = necessary'
我想得到这个结果:{"name" : "foo", "value" : "bar"}
没有必要,之后是什么;
我知道,我应该使用一些正则表达式,但我真的不明白正则表达式是如何工作的。
感谢是前进,
您可以使用:
var values='foo = bar; this = is; not = necessary'.split('; ')[0].split(' = ');
var obj={"name" : values[0], "value" : values[1]}
这样,您可以:
-
'foo = bar; this = is; not = necessary'.split('; ')
,返回['foo = bar','this = is','not = necessary']
- 你只需要第一个元素,所以
'foo = bar; this = is; not = necessary'.split(';')[0]
给出了'foo = bar'
- 然后你再次分裂:
'foo = bar; this = is; not = necessary'.split(';')[0].split(' = ')
,这给了['foo','bar']
- 最后创建对象
一种使用正则表达式在特定字符串中搜索指定名称的方法,该名称将与字符串的foo = bar
部分匹配:
function getNameValuePair(string, needle) {
if (!string || !needle) {
return false;
}
else {
var newNeedle = needle + '''s+''=''s+''w+',
expr = new RegExp(newNeedle),
parsed = string.match(expr).join(),
parts = parsed.split(/'s+'='s+/),
returnObj = {'name' : parts[0], 'value' : parts[1]};
return returnObj;
}
}
var string = 'foo = bar; this = is; not = necessary',
nameValueObj = getNameValuePair(string, 'foo');
console.log(nameValueObj);
JS小提琴演示。
当然,这可以适应您的要求。
然而,事实就是如此:
- 该函数检查两个参数是否存在,如果不存在,则仅返回
false
。 - 创建一个正则表达式模式,该模式由
needle
(在本例中为"foo")组成,后跟一个或多个空格单元,后跟单个=
字符,后跟一个或多个空格字符。如果空白可能并不总是存在,最好更改为newNeedle = needle + '''s*''=''s*''w+'
(+
匹配"一个或多个",*
匹配"零或更多")。 - 从该模式创建一个正则表达式,
- 测试给定的字符串以查看它是否与模式匹配,如果是,则将匹配的字符串存储在
parsed
变量中, - 用另一个正则表达式拆分
parsed
变量,有效地拆分为零个或多个空格后跟一个=
,后跟零个或多个空格的模式,将分隔的部分存储在parts
数组变量中, - 从
parts
变量构造对象。 - 返回该变量。
稍微更新了上面的内容,因为创建一行正则表达式的两行很愚蠢:
function getNameValuePair(string, needle) {
if (!string || !needle) {
return false;
}
else {
var expr = new RegExp(needle + '''s+''=''s+''w+'),
parsed = string.match(expr).join(),
parts = parsed.split(/'s+'='s+/),
returnObj = {'name' : parts[0], 'value' : parts[1]};
return returnObj;
}
}
var string = 'foo = bar; this = is; not = necessary',
nameValueObj = getNameValuePair(string, 'foo');
console.log(nameValueObj);
JS小提琴演示。
引用:
- JavaScript 正则表达式。
-
string.match()
. -
string.split()
.
相关文章:
- 在HTML包围的javascript中添加两个变量
- 填写表单后替换两个变量
- 用于交换两个变量的 JavaScript 函数
- 使用一个表达式将两个变量分配给相同的值
- 如何添加两个变量而不使其在javascript中连接
- 有可能让两个变量指向同一个对象吗?(javascript)
- 带有两个变量函数的Ajax提交表单
- 将两个变量的值加在一个变量中
- 如何使用javascript获取两个变量的最高值
- 如何从字符串中获取两个变量
- 测试两个变量是否包含一些数据 JavaScript
- 将两个变量从php发送到javascript
- 如何在javascript中计算两个变量的百分比
- 连接两个变量
- Javascript变量没有正确添加两个变量,只是连接
- 如何在客户端验证中验证两个变量规则
- 想要使用document.getelementbyid显示两个变量
- 使用带有两个变量的相同if-else语句
- 我可以用JavaScript声明一个数组中的两个变量吗
- 使用数据库中的两个变量在jqplot中显示图形