匹配之前的JavaScript正则表达式

时间:2015-01-25 07:36:53

标签: javascript regex string string-formatting

我对JavaScript中的正则表达式完全不熟悉,这可能是我第一次使用它,我想知道如何在和之前获取值 冒号哈希并将其值存储到如下变量中:

var str = 'name[:|#]result';
// before and after values
var trigger = 'name';
var value = 'result';
// logs: name result
console.log(trigger + ' ' + value);

2 个答案:

答案 0 :(得分:1)

这可以做你想要的(现在使用正则表达式)

var str1 = 'name:result',
    str2 = 'name#result';
// get anything before ':result'
var matcher = new RegExp(/(.*)[:|#](.*)/);
var minResult1 = str1.match(matcher),
    minResult2 = str2.match(matcher);

// This will split the results to: 
// [fullstring, name, result]

console.log(minResult1[1], minResult1[2]); 
console.log(minResult2[1], minResult2[2]); 

它根据文本':结果'拆分字符串,并抓取其背后的任何内容。

此处的新工作示例:http://jsfiddle.net/TheIronDeveloper/qjdrjozx/1/

答案 1 :(得分:0)

(?<trigger>.+?)(?=[:#])|(?<=[:#])(?<value>.+)

你可以通过简单的正则表达式使用lookaheads和lookbehind来做到这一点。参见demo.Grab捕获或组。

https://www.regex101.com/r/rG7gX4/21