我正在实施客户端搜索,搜索输入可以接受,
any kind of string
(or)
name: "some string", value: 2, last_name: "some string", last_value: 2
我想验证字符串,以确定它是简单的字符串还是对象字符串。我有一个以下正则表达式来做它。
var s = 'star: asd, sta:1, sd:2';
// 'star: as, d, sta:1, sd:2';
// 'star: as, d, sta1, sd:2';
var t = s.match(/[\w]+[\:][\s]?[\w]+[\,?][\s?]/);
console.log(t);
小提琴:http://jsfiddle.net/9wryK/
这只匹配第一部分'star:asd'。如何匹配与其余字符串相同的可能性?
答案 0 :(得分:1)
使用'global'修饰符:
var s = 'star: asd, sta:1, sd:2';
// 'star: as, d, sta:1, sd:2';
// 'star: as, d, sta1, sd:2';
var t = s.match(/\w+:\s?\w+,?\s?/g);
console.log(t);
另外,使用lookahead只捕获对,而不使用可选的逗号和空格。
var s = 'star: asd, sta:1, sd:2';
// 'star: as, d, sta:1, sd:2';
// 'star: as, d, sta1, sd:2';
var t = s.match(/\w+:\s?\w+(?=,?\s?)/g);
console.log(t);