JavaScript - 用于检查键和值对的正则表达式

时间:2013-11-20 07:07:21

标签: javascript jquery regex

我正在实施客户端搜索,搜索输入可以接受,

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'。如何匹配与其余字符串相同的可能性?

1 个答案:

答案 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);