{"id":6163,"date":"2019-02-08T12:40:25","date_gmt":"2019-02-08T12:40:25","guid":{"rendered":"https:\/\/cheesecakelabs.com\/blog\/?p=6163\/"},"modified":"2022-07-01T17:21:55","modified_gmt":"2022-07-01T17:21:55","slug":"use-regex-boost-developer-toolbox","status":"publish","type":"post","link":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/","title":{"rendered":"Use Regex to boost your developer toolbox!"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">While we are creating components in our ReactJS\/Angular\/VueJS projects we end up stumbling upon nice libs. However, sometimes we just need to fix minor things and importing a full lib seems like the only way to do it. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The next command line can be the holy grail \u2013 or the most feared one:<\/span><\/p>\n<p><!--more--><\/p>\n<pre class=\"language-sql\"><code class=\"language-sql\">$ yarn add cool-text-stuff<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">Now that we have our data, we need to consult it. Let\u2019s do this?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So, what can we do if we face a problem with the size of our JS bundle and we need to filter inputs or even show the content of a request on screen? Maybe you can consider using the Regex &#8216;magic&#8217;!<\/span><\/p>\n<h1><b>Wait, what is Regex?<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">Yeah, we all know something about Regex when we try to create masks for our inputs or something like this. But what exactly is Regex and how can we really evolve our way of thinking by using it?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Regex is the shorthand for <\/span><i><span style=\"font-weight: 400;\">Regular Expressions<\/span><\/i><span style=\"font-weight: 400;\"> and it has a lot to do with compilers and programming languages. You can go ahead and search its definition, but if you want a shortcut I can tell you, Regex in JS (or any other language you know) is a nice way to deal and manipulate Strings.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The support for Regex has little differences between languages, but almost all the Regex in this post can be used in any language, even with the (Functional) ones. A simple Regex can be<\/span><\/p>\n<pre class=\"language-sql\"><code class=\"language-sql\">\/[a-z]*@ckl\\.io\/<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">That matches any email from Cheesecake in lower-case, without numbers or special characters.<\/span><\/p>\n<h1><b>Nice, but how do I use this?<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">Think that you need to create a mask for an input to match a credit card number. It should match:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Only numbers<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Place a space every 4 digits<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Do not let the user input more than 16 digits<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A nice function to deal with strings and Regex in JS is \u2018replace()\u2019. Let\u2019s say that you have a stateless component in ReactJS called \u2018Input\u2019. The component&#8217;s state is stored by its parent. This means that our component is implemented with an \u2018<\/span><span style=\"font-weight: 400;\">onChange()<\/span><span style=\"font-weight: 400;\">\u2019 function prop and a value that comes from the parent as a prop as well.<\/span><\/p>\n<pre class=\"language-sql\"><code class=\"language-sql\">class Parent extends Component {\n  \/\/ ...\n  normalize = value =&gt; {\n    const newValue = value\n      .replace(\/\\D\/g, '')\n      .replace(\n        \/(\\d{0,4})(\\d{0,4})(\\d{0,4})(\\d{0,4}).*\/g,\n        (match, group1, group2, group3, group4) =&gt;\n          `${group1}${group2.length &gt; 0 ? ` ${group2}` : ''}${\n            group3.length &gt; 0 ? ` ${group3}` : ''\n          }${group4.length &gt; 0 ? ` ${group4}` : ''}`\n      )\n    this.setState({\n      value: newValue,\n    })\n  }\n\n  \/\/ ...\n  render() {\n    const { value } = this.state\n      return (\n        &lt;Input \n          value={value} \n          onChange={value =&gt; this.normalize(value)} \n        \/&gt;\n      )\n  }\n}\n<\/code><\/pre>\n<p><span style=\"font-weight: 400;\">Let&#8217;s go over how these Regex were used. In the first Regex we cleaned any value that is not a number and replaced it with empty strings. It is easy to use it because the \\D shorthand says &#8220;match anything <\/span><b>except<\/b><span style=\"font-weight: 400;\"> numbers&#8221;.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the second Regex we want to split the digits into groups of four:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\\d<\/span><span style=\"font-weight: 400;\"> is the shorthand for <\/span><span style=\"font-weight: 400;\">[0-9]<\/span><span style=\"font-weight: 400;\">, that means that we can match any number from 0 to 9<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">{0,4}<\/span><span style=\"font-weight: 400;\"> after every <\/span><span style=\"font-weight: 400;\">\\d<\/span><span style=\"font-weight: 400;\"> is telling us that we need to find a match of 0 to 4 digits for each section<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The parenthesis is where we say: <\/span><i><span style=\"font-weight: 400;\">this is a group<\/span><\/i><span style=\"font-weight: 400;\"> and as the credit card has 4 groups of 4 digits, we need 4 of them<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">In the end we have the <\/span><span style=\"font-weight: 400;\">.*<\/span><span style=\"font-weight: 400;\"> saying that we can match anything and we will not treat that<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The anonymous function is where we receive these groups and treat them: if we have a match, we show the space before each match values except for the first one<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">With this simple Regex we can save the import of some package that we would possibly increase the bundle size. You can even refactor this function to a service or an utils file to use it inside other components!<\/span><br \/>\n<span style=\"font-weight: 400;\">You can also search for more Regex used and match any string you want. This works almost like a \u2018<\/span><span style=\"font-weight: 400;\">filter()<\/span><span style=\"font-weight: 400;\">\u2019 function for arrays: the string is the array and the elements of the array are characters!<\/span><\/p>\n<h1><b>Wrapping up<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">As a &nbsp;developer I always try to improve my code knowledge and its readability to polish the use of patterns, and to leverage the use of built-in elements of any programming language. As I said earlier, it can save you a few kb of data while dealing with strings, using just one single built-in lib: Regex.<\/span><\/p>\n<p><b>Dealing with complex Regex? Test it online!<\/b><br \/>\n<span style=\"font-weight: 400;\">If you need to test your Regex, try these websites:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/regex101.com\/\"><span style=\"font-weight: 400;\">https:\/\/regex101.com\/<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/regexr.com\/\"><span style=\"font-weight: 400;\">https:\/\/regexr.com\/<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/www.regexpal.com\/\"><span style=\"font-weight: 400;\">https:\/\/www.regexpal.com\/<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Still having problems? Send me an <\/span><a href=\"mailto:ile@ckl.io\"><span style=\"font-weight: 400;\">email<\/span><\/a><span style=\"font-weight: 400;\"> and I\u2019ll be glad to help!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While we are creating components in our ReactJS\/Angular\/VueJS projects we end up stumbling upon nice libs. However, sometimes we just need to fix minor things and importing a full lib seems like the only way to do it. The next command line can be the holy grail \u2013 or the most feared one:<\/p>\n","protected":false},"author":65,"featured_media":6165,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[432],"tags":[287,302],"class_list":["post-6163","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","tag-tag-code","tag-tag-reactjs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Use Regex to boost your developer toolbox!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Use Regex to boost your developer toolbox!\" \/>\n<meta property=\"og:description\" content=\"While we are creating components in our ReactJS\/Angular\/VueJS projects we end up stumbling upon nice libs. However, sometimes we just need to fix minor things and importing a full lib seems like the only way to do it. The next command line can be the holy grail \u2013 or the most feared one:\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\" \/>\n<meta property=\"og:site_name\" content=\"Cheesecake Labs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cheesecakelabs\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-08T12:40:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-01T17:21:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Cheesecake Labs\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:site\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\"},\"author\":{\"name\":\"Ile Caian\"},\"headline\":\"Use Regex to boost your developer toolbox!\",\"datePublished\":\"2019-02-08T12:40:25+00:00\",\"dateModified\":\"2022-07-01T17:21:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\"},\"wordCount\":701,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png\",\"keywords\":[\"code\",\"ReactJS\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\",\"name\":\"Use Regex to boost your developer toolbox!\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png\",\"datePublished\":\"2019-02-08T12:40:25+00:00\",\"dateModified\":\"2022-07-01T17:21:55+00:00\",\"author\":{\"@type\":\"person\",\"name\":\"Ile Caian\"},\"breadcrumb\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png\",\"width\":2000,\"height\":720,\"caption\":\"Code on a blue screen with the word 'regex' outstanding.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cheesecakelabs.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Use Regex to boost your developer toolbox!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/\",\"name\":\"Cheesecake Labs\",\"description\":\"Nearshore outsourcing company for Web and Mobile design and engineering services, and staff augmentation for startups and enterprises..\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cheesecakelabs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"name\":\"Ile Caian\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#\/schema\/person\/image\/\",\"url\":false,\"contentUrl\":false,\"caption\":\"Ile Caian\"},\"description\":\"10 years of experience in Marketing and Sales in the Technology sector. My main purpose is help, support and structure efficient operations and also develop independent and multidisciplinary teams.\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/autor\/ile\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Use Regex to boost your developer toolbox!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/","og_locale":"en_US","og_type":"article","og_title":"Use Regex to boost your developer toolbox!","og_description":"While we are creating components in our ReactJS\/Angular\/VueJS projects we end up stumbling upon nice libs. However, sometimes we just need to fix minor things and importing a full lib seems like the only way to do it. The next command line can be the holy grail \u2013 or the most feared one:","og_url":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/","og_site_name":"Cheesecake Labs","article_publisher":"https:\/\/www.facebook.com\/cheesecakelabs","article_published_time":"2019-02-08T12:40:25+00:00","article_modified_time":"2022-07-01T17:21:55+00:00","og_image":[{"width":2000,"height":720,"url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png","type":"image\/png"}],"author":"Cheesecake Labs","twitter_card":"summary_large_image","twitter_creator":"@cheesecakelabs","twitter_site":"@cheesecakelabs","twitter_misc":{"Written by":null,"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#article","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/"},"author":{"name":"Ile Caian"},"headline":"Use Regex to boost your developer toolbox!","datePublished":"2019-02-08T12:40:25+00:00","dateModified":"2022-07-01T17:21:55+00:00","mainEntityOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/"},"wordCount":701,"commentCount":0,"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png","keywords":["code","ReactJS"],"articleSection":["Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/","url":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/","name":"Use Regex to boost your developer toolbox!","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png","datePublished":"2019-02-08T12:40:25+00:00","dateModified":"2022-07-01T17:21:55+00:00","author":{"@type":"person","name":"Ile Caian"},"breadcrumb":{"@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#primaryimage","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2019\/02\/Blogpost-Ile.png","width":2000,"height":720,"caption":"Code on a blue screen with the word 'regex' outstanding."},{"@type":"BreadcrumbList","@id":"https:\/\/cheesecakelabs.com\/blog\/use-regex-boost-developer-toolbox\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cheesecakelabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Use Regex to boost your developer toolbox!"}]},{"@type":"WebSite","@id":"https:\/\/cheesecakelabs.com\/blog\/#website","url":"https:\/\/cheesecakelabs.com\/blog\/","name":"Cheesecake Labs","description":"Nearshore outsourcing company for Web and Mobile design and engineering services, and staff augmentation for startups and enterprises..","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cheesecakelabs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","name":"Ile Caian","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/#\/schema\/person\/image\/","url":false,"contentUrl":false,"caption":"Ile Caian"},"description":"10 years of experience in Marketing and Sales in the Technology sector. My main purpose is help, support and structure efficient operations and also develop independent and multidisciplinary teams.","url":"https:\/\/cheesecakelabs.com\/blog\/autor\/ile\/"}]}},"_links":{"self":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/6163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/comments?post=6163"}],"version-history":[{"count":1,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/6163\/revisions"}],"predecessor-version":[{"id":10220,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/6163\/revisions\/10220"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media\/6165"}],"wp:attachment":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media?parent=6163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/categories?post=6163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/tags?post=6163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}