0

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

到目前为止我在做:

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

但输出仍然是完整的线。

4

2 回答 2

2

使用.split(), 以取出您想要的物品。

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

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

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

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

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

于 2013-01-15T01:25:34.133 回答
1

沿着这些思路尝试更多的东西......

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

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

您可能想要使用.exec()而不是.match()取决于您在做什么。另请参阅SO 问题的答案“您如何在 javascript 正则表达式中访问匹配的组?”

于 2013-01-15T01:28:07.877 回答