删除$select子句

本文关键字:子句 select 删除 | 更新日期: 2023-09-27 18:14:15

我需要删除OData查询的$select部分,可能的字符串如下

$select=FirstName,LastName
$select=FirstName,LastName&$filter=FirstName eq 'John'
$filter=FirstName eq 'John'&$select

所以我得出的规则如下:

  • 删除所有以$select开头的内容,如果没有&字符
  • 删除所有以$select开头的内容,直到下一个&是否有一种方法来编写一个正则表达式来测试两个场景和清洁我的OData URL?

现在我有以下测试:

var query = "$select=FirstName";
var query = "$select=FirstName&$filter=FirstName eq 'John'";
var query = "$filter=FirstName eq 'John'&$select=FirstName";
var query = "$filter=FirstName eq 'John'";

我还需要删除&如果$select是第一个子句或前面的&如果$select是最后一个子句

删除$select子句

类似于

^'$select[^&]*

应该这样做

解释:

^          start of string (remove this if that's not actually a requirement)
'$select   match the literal string "$select" 
           (note that $ is escaped because $ is end of string)
[^&]*      match anything that ISN'T an &, greedy