{ "exercise": "phone-number", "version": "1.0.2", "cases": [ { "description": "Cleanup user-entered phone numbers", "comments": [ " Returns the cleaned phone number if given number is valid, " , " else returns nil. Note that number is not formatted, " , " just a 10-digit number is returned. " ], "cases": [ { "description": "cleans the number", "property": "clean", "phrase": "(123) 456-7890", "expected": "1234567890" }, { "description": "cleans numbers with dots", "property": "clean", "phrase": "123.456.7890", "expected": "1234567890" }, { "description": "cleans numbers with multiple spaces", "property": "clean", "phrase": "123 456 7890 ", "expected": "1234567890" }, { "description": "invalid when 9 digits", "property": "clean", "phrase": "123456789", "expected": null }, { "description": "invalid when 11 digits does not start with a 1", "property": "clean", "phrase": "21234567890", "expected": null }, { "description": "valid when 11 digits and starting with 1", "property": "clean", "phrase": "11234567890", "expected": "1234567890" }, { "description": "invalid when more than 11 digits", "property": "clean", "phrase": "321234567890", "expected": null }, { "description": "invalid with letters", "property": "clean", "phrase": "123-abc-7890", "expected": null }, { "description": "invalid with punctuations", "property": "clean", "phrase": "123-@:!-7890", "expected": null }, { "description": "invalid with right number of digits but letters mixed in", "property": "clean", "phrase": "1a2b3c4d5e6f7g8h9i0j", "expected": null } ] } ] }