const regex = /("(?:\\[\s\S]|[^"])*")|((?:\/\/|#)[^\n]*)|(\/\*[\s\S]*?\*\/)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('("(?:\\\\[\\s\\S]|[^"])*")|((?:\\\/\\\/|#)[^\\n]*)|(\\\/\\*[\\s\\S]*?\\*\\\/)', 'g')
const str = `//first line
{"aaa": "qwerty",//00
"bbb": 1234 //comment (not pure JSON syntax)
,"ccc": true # alternative comment style
,"dd\\"d":/*multiline\\" comm\\ent*/ /*comm2\\*/null,
"ee//e": "example of any symbols in key including inactive comments",
"jsonComm":/*is*/"data format",/*which contains*///comments
"multiline1" /*: 1, //- example of multiline comments
"multiline2": 2,
"multiline3":= 1234,*/ :[36.8,false/*,34*/,
"/**/",[1,2,3,4,[//56789
5,6,[[/*0*/7,{"x":/*xx*/"x"}],8]],{}] ],
"mayBeAnyStructure":{"a":1/**/,"b":2},
"lineEnd\\\\"
:"end"
}//after json
/*2*/ `;
const subst = `$1`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions