Serialization of RegExp

前端 未结 6 1788
北荒
北荒 2020-12-16 10:01

So, I was interested to find that JSON.stringify reduces a RegExp to an empty object-literal (fiddle):

JSON.stringify(/^[0-9]+$/) // \"{}\"
         


        
6条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-16 10:13

    I think a good approach would be something like this:

    function stringifyFilter(key,value) {
        if (value instanceof RegExp) {
            return value.toString();
        }
    
        return value;
    }
    
    var myObj = {
        text : 'Howdy ho!',
        pattern : /[a-z]+/i
    }
    
    JSON.stringify(myObj,stringifyFilter); // output: {"text":"Howdy ho!","pattern":"/[a-z]+/i"}
    

提交回复
热议问题