使用正则表达式从函数中删除param类型

时间:2017-10-26 07:48:23

标签: javascript regex

您好我正在尝试使用正则表达式从函数中删除param类型。我有这个字符串

let str = 'function(param: Int, Window: String, param1: String, Window: String)';

console.log(str.replace(/(, )?Window: String/g, ''));

它删除并返回function(param: Int, param1: String),它正常工作,但我不想在正则表达式中硬编码Window: String。它可能是任何东西。

有谁知道怎么做?

2 个答案:

答案 0 :(得分:2)

你可以通过交替进行,如下所示:

export {default} from './Component'

这将尝试在参数首先处理逗号,如果不匹配,它会尝试在参数之前没有逗号但在之后使用可选逗号进行匹配。

/,\s*Window:\s*\w+|\s*Window:\s*\w+\s*,\s*?/g

答案 1 :(得分:0)

没有reg表达式首先尝试:



let paramToDel = 'Window';

let str = 'function(param: Int, Window: String, param1: String, Window: String)';
    
function delParam(str, param)
{
  str = str.trim();  
  params = str.substring(str.indexOf('(')+1, str.indexOf(')'));
  params = params.replace(/([a-z0-9]+)/ig, '"$1"');  
  let res = JSON.parse('{'+params+'}');
  delete res[param];
  res = JSON.stringify(res);
  return 'function('+res.substring(1, res.length-1).replace(/"/g, '')+')';
}
    
console.log('Input', '`' + str + '`')
console.log('Output', '`' + delParam(str, paramToDel) + '`');

.as-console-wrapper { max-height: 100% !important; top: 0; }