首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Javascript Regex结果转换为字符串(?)

将Javascript Regex结果转换为字符串(?)
EN

Stack Overflow用户
提问于 2016-05-03 15:08:00
回答 2查看 359关注 0票数 0

我使用一个简单的RegExp表达式提取了一个括号内的字符串。我尝试将结果拆分到一个数组中。

但我要买一台"Cannot read property 'split' of null" ERROR。这很奇怪,因为vrb1返回(a, b)

我已经尝试过用toString()vrb1转换为字符串,但不起作用。

这个错误会不会是因为RegExp匹配结果?非常感谢您的帮助。

代码语言:javascript
运行
复制
str = sample(a, b);

var regex = new RegExp("[\(]([^\)])+[\)]","g");
var vrb1 = str.match(regex);
var tmp = vrb1.split(",");
return tmp;
EN

回答 2

Stack Overflow用户

发布于 2016-05-03 15:12:37

match返回数组,而不是字符串。

返回值

array

一个数组,包含整个匹配结果和任何括号捕获的匹配结果,如果没有匹配,则返回null。

在您的示例中,您需要类似以下内容:

代码语言:javascript
运行
复制
if (vrb1 !== null) {
    var tmp = vrb1[0].split(',');
}
票数 3
EN

Stack Overflow用户

发布于 2016-05-03 15:10:30

如果未找到结果,match将返回null

您也只需要检查是否为null。

替换

代码语言:javascript
运行
复制
var tmp = vrb1.split(",");

使用

代码语言:javascript
运行
复制
var tmp = vrb1 || [];

如果没有找到结果,这将返回一个空数组。

编辑

看起来您要进一步将结果除以comma,然后尝试

代码语言:javascript
运行
复制
var tmp = vrb1 ? vrb1[0].split(",") : [];

或者因为有多个结果(正则表达式中的g)

代码语言:javascript
运行
复制
var tmp = vrb1 ? vrb1.join(",").split(",") : [];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36997832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档