Regex TestBech

by kontrax

HTML

<div id="form">
  <input type="text" id="pattern" value="\@\w{4,15}\b">
  <!--<input type="text" id="pattern" value="\b[A-Z]{2}[\ ]\d{5}\b">-->
  <!--<input type="text" id="pattern" value="\b\d{4}([\ \.]?)\d{2}\1\d{5}\b">-->
  <input type="text" id="flags"   value="g">
  <br>
  <input type="text" id="test"
    value="@valid invalid @_valid @invalid_to_long_name @low">
  <!--<input type="text" id="test"
    value="PD 12345 - PD12345 - PD 123456">-->
  <!--<input type="text" id="test"
    value="1234.56.78910' '12345678910' '1234 56 78910' '1234 56.78910'">-->
  <button id="btn">Run Test</button>
  <hr>
  <div id="result"></div>
</div>

CSS

/************************************

twitter ID:
/\@\w{4,15}\b/

----------------------
Norsk bilskilt:
/\b[A-Z]{2}[\ ]\d{5}\b/

------------------------------

bank konto:
/\b\d{4}([\ \.]?)\d{2}\1\d{5}\b/

------------------------------

\+?
\d{2}
[\ ]
\d{8}

------------------------------
- Single Characters/Symbols

\w        =  a-z || A-Z || _
[a-zA-Z_] = ---"----
[a-z]     = abc....z (small-case)

\d        = 0-9
[0-9]     = ---

\s        = (mellomrom) || (tab) || (ny linje) || (ny linje windows)
[\n]      = ny linje
[\r\n]    = ny linje windows
[\ ]      = mellomrom
[\t]      = tab

[\$\&]    = $ || &
[\\]      = \

.         = alt utenom line-break

-------------------------------
- Boundries

^         = start of string
$         = end of string
\b        = start/end of word

-------------------------------
- Repitition

.       = 1      = {1}
.*      = 0 ++   = {0,}
.+      = 1 ++   = {1,}
.?      = 0 || 1 = {0,1}
.{x,x}  = {min, max} || {antall} || {min,} || {,max}

-------------------------------

+47 12345
 47 12345

\+?\d\d \d\d\d\d\d

/\+?\d{2}[\ ]\d{8}/

JavaScript

var e_pattern = document.getElementById("pattern")
var e_txt     = document.getElementById("test")
var e_flags   = document.getElementById("flags")
var e_btn     = document.getElementById("btn")
var e_result  = document.getElementById("result")

// Start ----------------------------------------
e_btn.onclick = () => {
    const flags      = e_flags.value
    const pattern    = new RegExp(e_pattern.value, flags)
    const testString = e_txt.value
		let result       = ""

		const matches = testString.match(pattern) || []
    const found   = (matches.length > 0)
    
    result = matches.join('<br>')

    e_result.innerHTML = (found ? 'true' : 'false') + `:${matches.length}<br><hr>` + result;
}