Advanced Examples
Javascript comments
/\/\*[\s\S]*?\*\/|\/\/.*/g- 1 matchconst a = 0; // comment
- 1 match/* multiline */
[\s\S] is a hack to match any character including newlines. We avoid the dot-all flag because we need to use the ordinary . for single-line comments.
24-Hour Time
/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/g- 1 match23:59:00
- 1 match14:00
- 1 match23:00
- 0 matches29:00
- 0 matches32:32
Meta
/<Example source="(.*?)" flags="(.*?)">/gm- 1 match<Example source="p[aeiou]t" flags="g">
- 1 match<Example source="s+$" flags="gm">
- 1 match<Example source="(['"])(?:(?!\1).)*\1" flags="g">
- 0 matches<Example source='s+$' flags='gm'>
- 0 matches</Example>
Replace: <Example regex={/$1/$2}>
I performed this operation in commit d7a684f.
Floating point numbers
- optional sign
- optional integer part
- optional decimal part
- optional exponent part
/^([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))(?:[eE]([+-]?\d+))?$/g- 1 match987
- 1 match-8
- 1 match0.1
- 1 match2.
- 1 match.987
- 1 match+4.0
- 1 match1.1e+1
- 1 match1.e+1
- 1 match1e2
- 1 match0.2e2
- 1 match.987e2
- 1 match+4e-1
- 1 match-8.e+2
- 0 matches.
The positive lookahead (?=\.\d|\d) ensures that the regex does not match ..
Latitude and Longitude
/^((-?|\+?)?\d+(\.\d+)?),\s*((-?|\+?)?\d+(\.\d+)?)$/g- 1 match30.0260736, -89.9766792
- 1 match45, 180
- 1 match-90.000, -180.0
- 1 match48.858093,2.294694
- 1 match-3.14, 3.14
- 1 match045, 180.0
- 1 match0, 0
- 0 matches-90., -180.
- 0 matches.004, .15
See also: Floating Point Numbers
MAC Addresses
/^[a-f0-9]{2}(:[a-f0-9]{2}){5}$/i- 1 match01:02:03:04:ab:cd
- 1 match9E:39:23:85:D8:C2
- 1 match00:00:00:00:00:00
- 0 matches1N:VA:L1:DA:DD:R5
- 0 matches9:3:23:85:D8:C2
- 0 matchesac::23:85:D8:C2
UUID
/[\da-f]{8}-([\da-f]{4}-){3}[\da-f]{12}/i- 1 match123e4567-e89b-12d3-a456-426655440000
- 1 matchc73bcdcc-2669-4bf6-81d3-e4ae73fb11fd
- 1 matchC73BCDCC-2669-4Bf6-81d3-E4AE73FB11FD
- 0 matchesc73bcdcc-2669-4bf6-81d3-e4an73fb11fd
- 0 matchesc73bcdcc26694bf681d3e4ae73fb11fd
IP Addresses
/\b(?:(?:2(?:[0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9])\.){3}(?:(?:2([0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9]))\b/g- 1 match9.9.9.9
- 1 match127.0.0.1:8080
- 1 matchIt's 192.168.1.9
- 1 match255.193.09.243
- 1 match123.123.123.123
- 0 matches123.123.123.256
- 0 matches0.0.x.0
HSL colours
Integers from 0 to 360
- 360
- 300to- 359—- 3,- [0-5], any digit
- 0to- 299- optionally 1or2as the hundreds digit
- optionally any tens digit
- a units digit
 
- optionally 
/^0*(?:360|3[0-5]\d|[12]?\d?\d)$/g- 1 match360
- 1 match349
- 1 match235
- 1 match152
- 1 match68
- 1 match9
- 0 matches361
- 0 matches404
Percentages
- 100, optionally followed by- .000…
- one or two digit integer, optionally followed decimal part
/^(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%$/g- 1 match100%
- 1 match100.0%
- 1 match25%
- 1 match52.32%
- 1 match9%
- 1 match0.5%
- 0 matches100.5%
- 0 matches42
Bringing it all together
/^hsl\(\s*0*(?:360|3[0-5]\d|[12]?\d?\d)\s*(?:,\s*0*(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%\s*){2}\)$/gi- 1 matchhsl(0,20%,100%)
- 1 matchHSL(0350, 002%,4.1%)
- 1 matchhsl(360,10% , 0.2% )