我对JavaScript中的正则表达式完全不熟悉,这可能是我第一次使用它,我想知道如何在和之前获取值 冒号或哈希并将其值存储到如下变量中:
var str = 'name[:|#]result';
// before and after values
var trigger = 'name';
var value = 'result';
// logs: name result
console.log(trigger + ' ' + value);
答案 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]);
它根据文本':结果'拆分字符串,并抓取其背后的任何内容。
答案 1 :(得分:0)
(?<trigger>.+?)(?=[:#])|(?<=[:#])(?<value>.+)
你可以通过简单的正则表达式使用lookaheads和lookbehind来做到这一点。参见demo.Grab捕获或组。