Javascript正则表达式匹配英镑符号

时间:2013-01-15 01:22:42

标签: javascript regex

快速。我有一个字符串:#user 9#I'm alive!,我想要拔出“用户9”。

到目前为止我正在做:

    if(variable.match(/\#/g)){
            console.log(variable):
    }

但输出仍然是全线。

2 个答案:

答案 0 :(得分:2)

使用.split(),以便提取所需的项目。

var variable = variable.split("#");
console.log(variable[1]);

.split()将您的字符串转换为数组,第一个变量作为分隔符。

当然,如果你只想要正则表达式,你可以这样做:

console.log(variable.match(/([^#]+)/g));

这将再次为您提供一个项目数组,但是较小的项目,因为它不会将哈希值之前的空值用作项目。此外,正如@Stephen P所述,您需要使用捕获组(())来捕获所需的项目。

答案 1 :(得分:1)

在这些方面尝试更多内容......

var thetext="#user 9#I'm alive!";
thetext.match(/\#([^#]+)\#/g);

您想引入一个捕获组(括号中的部分)来收集英镑符号之间的文本。

您可能希望使用.exec()代替.match(),具体取决于您正在做的事情。 另请参阅this answer到问题“如何在javascript正则表达式中访问匹配的组?”