我有一个String,我只想验证以下字符串
one=1&two=2
- 此字符串将被视为有效
23=2&sa=32fd
- 此字符串也将被视为有效
12one=&13&=3
- 此字符串将被视为无效
验证这些字符串的最佳方法是什么?
答案 0 :(得分:1)
如果你坚持使用正则表达式,你可以使用它:
^(?:\w*?=\w*?&?)+$
const regex = /^(?:\w*?=\w*?&?)+$/gm;
const str = `
one=1&two=2
23=2&sa=32fd
12one=&13&=3`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}

但是,我建议您查看一些Query string解析库。
答案 1 :(得分:0)
以下内容将验证完整字符串以及捕获单个匹配项
^([\w|\d]+\=[\w|\d]+\&?)+$
如果你只是想验证字符串,那么Olian04的答案就可以了