快速。我有一个字符串:#user 9#I'm alive!
,我想要拔出“用户9”。
到目前为止我正在做:
if(variable.match(/\#/g)){
console.log(variable):
}
但输出仍然是全线。
答案 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正则表达式中访问匹配的组?”