►
From YouTube: TTEOT Training Video - S3E4: Patron Validation - Part 2
Description
More validation! I feel so loved! And validated! Did I mention I love to be validated? Part 2 of our 3 part series.
Contents:
0:00 - Title
0:32 - Intro
2:27 - Recap Last Week
5:58 - Validating Addresses
33:46 - Validating Phone Numbers
44:34 - Wrap Up
Music: https://www.bensound.com
A
A
Hello,
everybody
I'm
George
Williams
from
the
next
search
catalog
Consortium
in
Lawrence,
Kansas.
A
And
this
week
again
we're
going
to
be
talking
more
about
validation,
specifically
about
Patron
validation,
for
setting
up
the
ad
Patron
form
to
validate
some
of
the
data
that
you
can
input
into
it.
The
every
other
Thursday
videos
are
sponsored
by
koha
us
we're
part
of
the
education
committee
at
koha.
Us
and
we've
been
doing
these
videos
every
other
week
for
over
two
years
now.
So
this
is
the
beginning
of
our
third
year
and
I
think
what
this
is
like.
A
The
third
episode
second
episode,
third
episode
in
and
if
you
want
to
find
all
of
these
previously
previously
recorded
videos,
you
can
go
to
koha-us.org
and
go
to
learn
and
then
go
to
video
playlists.
A
B
B
No,
probably
not
all
right,
so
this
is
the
the
entirety
of
what
we
use
in
our
libraries
for
validation,
and
this
is
going
to
vary
from
library
to
or
from
a
system
to
system
because
of
what
you
may
or
may
not
want
to
validate
in
your
systems
and
we're
not
going
to
go
over
all
of
this,
but
we're
just
going
to
go
over
a
few
more
aspects
of
validation.
Today.
B
B
So,
of
course,
you
know
one
of
the
things
that
we
had
to
do
was
we
had
to
switch
our
save
button
so
that
we
could
capture
the
the
validation
we
needed
to
be
able
to
set
up
validation
so
that
it
would
check
all
the
different
rules
that
we
have
and
regex's
or
registry
entries,
so
that
we
could
see
you
know,
patterns
within,
what's
being
submitted
and
find
out,
if
there's
any
irregularities
and
report
on
it
before
it's
saved.
B
So
we
had
to
stop
that
usual
save
button
and
replace
it
with
another
one
and,
as
I
mentioned
before,
we
replace
the
button
because,
at
least
in
the
past,
when
I
tried
to
modify
the
existing
save
button,
it
didn't
work.
We
had
to
actually
just
go
ahead
and
replace
it
completely.
So
I
duplicated
it
and
added
a
few
more
components
to
it,
so
that
we
could
easily
do
the
validation
before
it
actually
did
the
save
right.
B
And
then
we
also
created
a
section
that
defined
a
function
called
Patron
validate,
and
this
is
where
we
we
do
everything
that
the
button
is
going
to
check
before
it
saves
the
form,
and
so
we
have
a
section
here
that
that
defines
a
blank
message
to
start
out
with
and
if
there
are
any
issues
that
come
up
along
the
way
as
it
does
checks,
it
will
add
to
that
message
and
then
we
get.
We
grab
all
our
variables,
and
in
this
case
we
only
went
through
one.
We
went
through
the
surname.
B
We
only
know
our
example
with
the
surname,
and
then
we
Define,
you
know
what
kind
of
things
that
we're
going
to
check
in
this
case
we're
checking
for
spaces,
and
then
we
were
checking
for.
B
A
name
so
we
would
eliminate
any
irregular
characters
that
shouldn't
be
there,
and
then
we
did
the
tests.
We
we
tested
the
the
the
variable
against
the
the
reg
regex
test
that
that
we
set
up
up
here
and
if
it
doesn't
pass,
it
would
add
to
the
message
explaining
what
the
problem
is
and
here's
another
test.
So
we
test
against
each
of
those
regexes
and
put
it
put
a
an
appropriate
message
for
each
if
it
fails,
and
then
we
display
that
message
and
if
we
don't.
B
B
So
this
week
we're
going
to
talk
about
addresses
and
phone
numbers
and
some
of
the
things
that
we
do
with
our
validation
in
what
we
we
do
in
our
Consortium
and
what
we
require
for
addresses.
One
of
the
things
that
is
is
commonly
done
in
addresses
that
kind
of
foul
things
up
is,
you
know
we'll
either
have
duplications
or
we'll
have
addresses
that
are
put
in
the
wrong
places,
and
we
use
both
address.
B
There's
two
different
address
sections
that
you
can
fill
out,
not
going
to
say
Fields,
because
you
know
it's
more
than
just
a
field,
but
you
have
a
primary
address
and
a
secondary
address
and
we
use
the
primary
address
for
our
the
address
that
we
actually
mail
to
and
we
use
the
secondary
address
as
a
a
physical
address.
B
If,
if
that
primary
address
is
like
a
PO
box
or
something
so
we
refer
to
our
our
primary
address
as
a
mailing
address,
and
we
refer
to
our
secondary
address
as
the
physical
address
and
there's
things
that
that
we
look
for
in
that
that
primary
address,
for
example,
if
that
primary
address
starts
with
correct
characters,
we
want
to
make
sure
that
it's
it's
starting
out
either
with
a
number
and
if
it's
not
a
number,
it's
starting
out
with
something
like
Po
or
well.
B
Actually,
no,
it
just
doesn't
start
with
po,
but
we
want
to
make
sure
that
things
in
there,
like
PO
boxes,
are
in
the
right
places.
B
Actually,
let's
see
here,
there's
PO
Box
I'm,
trying
to
remember
it's
so
long
since
I've
looked
at
addresses,
PO
Boxes
start
out
with
a
PO
right.
It
doesn't
start
out
with
a
number
so
so
yeah
regular
addresses
start
out
with
a
number
PO
Box
will
start
out
with
po
or
we
we
have
rural
routes
that
start
out
with
RR,
and
we
have
a
couple
others
that
that
we
look
for
I,
don't
know
all
of
them
all
of
them
off
the
top
of
my
head.
B
But
we
we
have
some
rural
areas
that
have
some
unique
circumstances.
So
we
have
to
look
for
for
certain
things
to
start
with.
If
it
starts
with
anything
else,
then
it
then
that
issues
of
flag
and
warning-
and
it
says
this
doesn't
look
right.
B
B
So
we're
looking
for
a
valid
address
that
starts
with
a
number
usually
or
you
know.
In
some
cases
it
will
be
a
rural
route
or
or
whatever
so
our
primary
address
can
start
with
po
secondary
won't.
So
we
have
different
rules
for
each
of
those
addresses,
and
then
we
also
look
to
make
sure
that
the
addresses
aren't
duplicated.
B
There
is
no
reason
that
we
need
to
have
the
same
address
set
up
twice
and
we
we
had
a
lot
of
duplication
when
we
migrated
from
our
last
system-
and
this
allowed
us
to
to
do
a
lot
of
cleanup
and
even
on
existing
accounts,
where
you
know
we
had
stuff
migrated.
If
they
tried
to
edit
that
account
later
on,
it
would
catch
the
stuff,
it
would
say:
hey,
no,
this
isn't
passing
now,
so
it
would.
It
would
trap
that
and
we
would
get
that
cleaned
up.
B
So
this
validation
not
only
works
for
stuff,
that's
being
entered
for
the
first
time.
Validation
works
for
pre-existing
information
that
you
are
now
trying
to
clean
up.
It
will
check
the
entire
form
for
your
rules
and
make
sure
that
they
still
pass
those
rules
which
is
really
nice,
so
it
will
retroactively,
allows
you
to
fix
some
things
that
were
broken
before
and
you
know
for
us.
B
You
know
we
understand
that
storage
space
is
not
infinite
and
every
little
bit
counts,
and
so
we
we
make
sure
that
that
you
know
we're
not
storing
those
duplicates,
because
you
know
it's
it's
it's
one
thing
to
have
one
account
that
has
a
duplicate
address,
but
when
you
have
tens
of
thousands
of
you
know,
accounts
that
have
duplications,
that's
a
lot
of
storage.
B
So
so
you
know,
and
we
check
for
duplication
on
many
sections
that
have
secondary
Fields.
You
know
we'll
check
for
duplication
with
with
mail
addresses,
we'll
check
for
duplication
with
phone
numbers,
we'll
check
for
duplication
with
email
addresses,
so
we
try
to
reduce
that
redundancy
in
there.
B
So
we'll
start
off
here
by
going
over
to
my
my
code,
we're
going
to
grab
first
of
all
we're
going
to
need
to
grab
the
variables
for
the
addresses
or
set
up
variables
for
the
addresses.
So
we
have
to
copy
those
fields
into.
A
A
B
B
So
I've
got
those
two
address:
Fields
we're
not
going
to
go
into
the
states
and
the
zip
codes,
and
all
that
you
know
a
lot
of
this
is
basically
checking
when
we
check
the
the
states
and
the
cities.
You
know
we
do
a
lot
of
the
same
things
that
we
did
like
with
the
surname.
We
checked
for
proper
characters
and
check
if
things
are,
if
we're
adding
spaces
at
the
beginning
and
end
of
those
fields.
B
So
a
lot
of
that
is
just
duplication,
so
we're
just
not
we're
not
going
to
go
into
every
single
field.
Those
things
can
be
repeated
and
tweaked.
Accordingly
to
what
you
are
are
checking
for
you
can
you
can
change
those
regexes,
but
these
are
more
specific
Concepts
I
wanted
to
to
go
over
with
with
the
addresses
and
phone
numbers
so
we'll
copy.
The
we've
got
those
variables
set
up
to
capture
those
those
particular
Fields.
B
Okay
and
these
rules,
like
I,
said
they're
they're
a
bit
different,
the
the
mailing
address
is
checking
to
see
if
it
starts
with
a
number
or
if
it
starts
with
PO
box
and
here's
another
thing
that
that
I
look
for
it
has
to
be.
You
know,
PO
space
box,
we've
had
so
many
variations
on
PO
box,
and
this
makes
sure
that
we
are
consistent
with
how
PO
boxes
are
entered,
so
it
has
to
be
entered
this
way.
We're
not
looking
for
variations
of
PO
Box
I've
had
p
period.
B
You
know
o
period
the
Box,
some
capitalized,
some
not
somewhat
spaces,
and
you
know
if
we
wanted
a
uniformity.
So
if.
A
B
So
that's
another
way.
This
can
be
started
on
this
field
and
then
we
can
look
for
the
roll
routes,
and
then
we
have
other
things
that
in
rural
rural
areas
or
post
offices
that
they
that
they
can
start
with.
So
we
make
sure
that
we
include
those
I
I'm
not
going
to
explain
every
aspect
of
this
validation.
But
those
are
the
types
of
things
that
we're
looking
for.
B
The
secondary
address
field
that
we
use
does
not
include
the
PO
Box,
because
if
we're
using
that
secondary
address
field,
we
are
we're
only
using
that
if
they
have
had
a
PO
Box
in
the
first
address,
meaning.
A
B
B
It
can't
happen,
and
so
we
need
to
collect
that
physical
address
in
in
our
cases,
we
are
collecting
we're
requiring
the
need
for
that
secondary
address,
because
this
is
how
we
figure
out
the
taxing
area,
so.
A
B
And
put
in
we,
we
have
Patron
attributes
that
we've
added
that
signify
what
taxing
area
they're
with,
so
that
we
can
do
our
statistics
based
on
those
taxing
areas.
So
we
have
to
have
that
physical
address
in
order
to
determine
where
that
taxing
area
is
so
that's
why
we
have
that
secondary
address
and
so
yeah
this
one's
a
little
shorter,
because
it
doesn't
have
that
that
PO
Box
it
can't
have
that
PO
box.
B
B
Tests
in
there
for
that
now
we're
going
to
we're
going
to
incorporate
a
a
section
in
here
to
actually
tests
against
that
regex.
So
first
thing
we're
going
to
do
is
we're
going
to
add
our
validation.
B
So
add
this
section
here
now
I'm
going
to
alter
this
a
little
bit,
because
we
have
some
things
in
here
that
don't
apply
to
this
example.
Here
we're
testing
against
a
particular
category
that
doesn't
require
this,
so
I'm
just
going
to
remove
that
one.
So
it's
only
going
to
check
the.
A
One
you
dropped
you're
missing
a
parenthesis.
B
Place:
okay,
so
we're
just
testing
the
the
variable
that
we
we
stuck
that
that
field
in
in
the
M
address
variable
we're
testing
it
against
the
M
address
Reg.
So
that's
what's
happening
here
and
it's
making
sure
it
doesn't
match
and
if
it
doesn't
match
the
pattern,
then
it's
going
to
add
the
message.
The
that
the
mail
street
address
is
not
properly
not
formatted
properly.
It
begins
with
the
P.O
box
or
is
it
begins
with
number?
B
B
B
The
field
to
let
you
know
that
you've
got
Extra
Spaces
in
there
and
again
we
did
this
early
on,
and
this
was
back
when
I
was
learning.
Jquery
I
could
have
gone.
The
route
of
you
know
just
telling
it
hey
just
strip
all
the
spaces
from
the
beginning.
In
the
end,
I
could
have
used
the
trim
function
like.
A
B
You
do,
but
you
know
what
I
I
liked
to
put
good
habits
on
our
staff
and
so
darn
it
and
I'm,
not
gonna.
Just
you
know
clean
it
up
for
them
in
this
case,
I'm
going
to
point
it
out
and
say:
hey
fix
this
get
in
the
habit
of
doing
it
right.
B
So
so,
in
this
case,
I
just
left
it
to
where
it's
testing
against
those
spaces
and
saying
you
need
to
find
this
and
fix
it
so
that
tests
the
the
primary
address
so
I'm,
going
to
that's
all
I'm
going
to
do
here.
I'll
save
the
secondary
for
a
moment.
I'm
going
to
save
this
and.
A
B
This
account
and
if
I've
done
this
right,
it
should
work
so
I'm
going
to
leave
the
address,
as
is
we're
not
using
the
we're,
not
testing
against,
address
2
in
this
main
address.
So
this
is
going
to
be.
This
isn't
going
to
do
anything,
but
it's
just
going
to
check
this
one
field
here.
So
if
this
Field's
okay,
it'll
save
okay,
that
works
just
fine
I'm
going
to
alter
that
with
the
space
and
it's
going
to
complain,
and
it's
going
to
give
me
that
message
something
you
know.
B
It's
telling
me
how
it
should
start
and
it
says
that
there's
a
space
that's
been
detected,
so
it's
catching
both
of
those.
But
if
I
put
something
like
whatever
in
there
or,
let's
see-
let's
see
maybe
I
put
in
the
in
the
address.
Without
the
number
you.
B
B
B
A
B
B
B
There
should
be
something
in
the
in
the
second
address
section,
and
that
would
be
a
good
test
if
you're
going
to
start
with
the
PO,
Box
and
I
think
I
have
that
somewhere
else
I
may
have
to
to
go
and
look
for
that
but
see
here's.
My
alternate
address
so
I'm
going
to
do
a
No-No
I'm
going
to
copy
this.
A
A
B
B
B
So
basically,
what
this
is
is
doing
is
it's
looking
at
both
variables
that
we've
copied
those
fields
in,
and
it's
checking
it's
here
if
it's
checking
the
the
mail
address
equals
the
the
physical
address,
the
the
M
address
and
the
P
address,
and
it's
also
checking
the
mail
address.
Why
is
it
doing
this
here?
B
There
there's
a
reason
for
everything,
and
the
question
is
whether
I
can
remember
those
reasons,
but
this
will
simply
check
to
see
if
those
are
exactly
the
same,
and
it
will
give
me
the
message:
if
they,
if
they
are
it's
going
to
add,
the
message
address
cannot
be
the
same.
A
B
And
it
didn't
mark,
let's
see
here.
B
Yes,
okay,
so
this
is
checking
for
a
PO
Box,
but
it
has
an
exclusion
on
this.
So
this
is
where
this
is,
where
it
tests
to
say:
okay,
you've
got
a
PO
Box
in
the
the
first
section
you
have
to
have
a
physical
address
in
the
second
section.
So
if
you're
going
to
have
a
a
PO
Box,
you
have
to
have
a
physical
address
as
well,
but
there's
also
an
exclusion
in
here
that
we
added
recently.
Let
me
copy
this
over
and
I'll.
B
So
that's
all
good
okay.
So
what
this
is
doing
is
it's
checking,
but
we
have
an
exclusion.
In
this
case,
we've
excluded
a
specific
P.O
box
with
a
with
a
specific
ZIP
code.
So
it's
it's
checking
the
the
address
and
if
it's,
if
it
equals
this
specific
PO
box-
and
it
has
a
zip
code-
it's
not
going
to
do
anything.
B
Otherwise,
it's
going
to
test
to
make
sure
that
if
the,
if
that
mailing
address
is
a
PO
box-
and
you
don't
have
anything
in
the
physical
address
section,
it's
going
to
complain
about
it
and
say
you
need
that
physical
address
right
exclusion
on
the
PO
Box.
In
our
case,
this
is
a
a
protected
PO
box
for
confidentiality.
There
are
yeah
there.
There
is
a
registered
PO
Box
in
our
state.
Where,
if
it's
used,
then
it
is
excluded
from
a
requirement
of
needing
a
physical
address.
A
Have
something
similar
here
in
Kansas?
It's
the
address
confidentiality
program
that
so,
if,
if
maybe
you're
an
abused
spouse
and
you've
got
a
restraining
order
against
your
former
spouse
to
prevent
them
from
having
any
contact
with
you,
it
gives
you
a
way
to
to
have
mail
come
to
you
without
going
to
a
physical
address
to
for
for
safety,
yes
and
I,
don't
I
I,
know
in
Kansas
and
I
know
also
in
Idaho,
because
I
used
to
live
there,
that
you're
required
that
you're.
If
you're
a
government
institution
like
a
library,
you.
B
B
And
you
know
this
is
the
for
you
know
we
just
had
this
this
last
month
come
up
for
the
first
time,
and
so
we
we
had
staff
doing
a
work
around.
You
know
this
isn't
a
you
know
the
validation
works,
but
you
know
it's
not
perfect.
We
they
were
putting
in
a
dummy
address
in
there
for
the
physical
address
to
fulfill
the
requirements
of
the
validation,
but
this
will
allow
us
to
not
require
that
physical
address
in
this
case.
So
now.
A
B
A
It's
not
even
getting
the
new
error
message
is
just
not
working
at
all
yeah.
B
It's
it's
not
getting
to
the
function
for
some
reason
and
that's
that's
an
indication
that
something
is
a
stray.
Oh
I
see
why
okay
I'm
testing
against
variables
that
haven't
been
defined.
That's
why?
Oh,
let's
take
those
variables
in
there!
So
yeah!
If
you,
if
you,
if
you
are
looking
at
variables,
that
you
haven't
defined
that'll,
break
your
code,
I.
B
Let's,
let's
go
grab
those
variables
real,
quick,
so
those
are
the
physical
city,
state
and
zip
code
that
we
need
so
we'll
grab
them
easy
enough
fix
city,
state
and
zip
code,
we'll
grab
them.
We
don't
have
to
do
any
tests.
Regexes.
B
B
It
should
save
there,
we
go
okay,
so
that
was
my
problem.
Just
didn't
have
defined
variables
that
I
was
calling.
So
now,
if
I
have
that
PO
Box
before
they
would
just
let
me
save
the
the
PO
Box,
not
a
physical
address.
Now,
if
I
have
any
empty
required
fields.
In
this
case,
the
required
fields
is
the
address
the
physical
address,
city,
state
and
zip
code.
If
any
of
those
are
blank
tells
me
right,
the
address
is
required
if
a
primary
address
is
a
PO
Box.
B
B
All
those
requirements
and
just
save
so
all
right
before
we
close
up
for
the
day
I,
wanted
to
also
go
over
a
another
section
that
we
can
test
against,
which
is
phone
numbers
and
so
we're
going
to
grab
two
more
variables.
B
B
But
but
yeah,
so
those
are
the
two
fields
that
we're
testing
against.
We
call
them
primary
phone
and
secondary
phone
in
in
our
libraries.
B
A
Confusing
but.
B
Yeah,
these
are
the
only
two
that
we
use
for
the
actual
Patron,
and
you
know,
of
course,
then
you've
got
your
your
your
contact
that
you
can
check
as
well.
We
include
a
a
contact
phone
number
that
isn't
the
patron.
B
A
B
B
So
our
primary
phone
is
going
to
allow
the
numbers
and
we're
we
do
for
the
United
States.
Our
format
for
our
libraries
is,
you
know
three
digits
Dash
three
digits
Dash
four
digits,
so
we
don't
require
the
the
one
at
the
beginning
of
it
or
a
plus,
and
we
don't.
We
don't
allow
extensions
in
the
phone
numbers.
So
this
is
our
primary
format
for
our
phone
number,
but
at
the
end
of
that
particular
regex,
there's
a
there's
an
extra
or
and
it
starts
with
an
A.
If.
B
Not
applicable
so
if
we
have
a
patron
and
we
do
get
patrons
that
don't
have
phones,
we
have
something
else
that
we
can
stick
in
there
to
indicate
we've
checked.
They
don't
have
a
phone
so,
instead
of
just
leaving
it
blank
because
if
we
just
leave
it
blank,
you
know
we
could
have
missed
that
field,
and
this
guarantee
is
that
we're
checking
with
the
patron
to
make
sure
do
you
have
a
phone
or
don't
you
right
so.
A
Do
you
have
I
mean
you
can
write
the
regex
so
that
it'll
say
like
and
EXT
you
can
add
an
extension
number
at
the
end
or
you
can
add
a
a
comment
that
says
for
messages
only
and
things
like
that.
Why
don't
you
do
that.
B
So
we
we
keep
the
phone
number
field
pure,
because
we
actually
have
a
twilio
phone
system
that
we
use
that
uses
phone
number
to
make
calls
and
having
extra
things
in
that
phone
field
can
trip
that
up
and
right,
so
that
that
makes
for
a
problem
if
we
have
extra
characters
in
there
right.
B
The
other
reason
that
we
don't
have
that
in
there
is
I
used
some
jQuery
for
our
text
message:
phone
number
field,
which
is
formatted
slightly
different.
It
has
no
dashes
and
it
has
the
plus
one
at
the
beginning
of
it,
which
is
the
format
required
for
twilio
I,
have
a
a
link
next
to
that
field.
That
allows
you
to
copy
that
phone
number
into
that
into
that
SMS
field
and
properly
format
it.
B
I
could
I
could
write
it
to
get
rid
of
everything
else,
but
you
know
having
this.
You
know
these
clean
Fields
makes
for
simpler
code
right.
So
you
know
yeah,
that's
that's
it.
We've
never
had
a
problem
with
with
the
needing
extensions,
so
this
has
worked
very
well
for
us.
B
Then
our
secondary
phone
is
basically
the
same,
except
it
will
not
allow
the
n
a.
We
will.
Let
that
one
be
blank.
They
don't
necessarily
have
to
have
a
secondary
phone,
but
we
always
check
for
a
primary
phone,
so
they
have
to
do
one
or
the
other
in
the
in
the
primary
phone
field
or
the
phone
field,
and
then
the
phone
Pro
is
optional.
B
B
So
here's
where
we
stick
in
our
actual
testing
and
so
the
primary
phone
is
checking
that
it's
the
right
format
and
then
that
secondary
test
of
you
know
it
doesn't
have
a
bunch
of
spaces
before
and
after
it.
B
B
This
is
checking
to
see
if,
if
the
primary
phone
is
the
same
as
the
secondary
phone
and
or
let's
see
here,
and
if
the
primary
phone
does
not
equal
n
a.
B
And
I
don't
know
why
I'm
testing
this
again
I,
don't
know
why
I
need
this
test.
Some
of
this
may
be
left
over
from
earlier
variations
right,
I'm,
not
sure
why
I
had
that
in
there
I'll
just
remove
that
it
I
don't
see
any
necessary
I.
Don't
see
it
necessary
to
test
that
again
because
it's
being
tested
up
here,
but
it's
checking
the
the
primary
phone
and
secondary
phone
to
see
if
they're
the
same,
and
if
that
primary
phone
is
not
equal
in
a
then
it
will
give
this
message.
B
B
No,
not
not
really
I
mean
we,
you
know
if
they
have
a
secondary
phone,
it
should
be
in
the
primary
field.
I.
B
No
I
I
I
I
I.
There
are
some
things
I
leave
too.
You
know
staff
to
to
logically
figure
out,
but
you
know
if
it
became
a
problem.
Yes,
I
could
make
a
test
to
figure
that
one
out
so
I've
got
that
set
up
and
there
is
a
phone
number
in
this
field,
and
this
is
the
proper
format,
so
it
should
save
without
problem.
A
B
B
Yeah,
the
The
Voice
notifications
would
check
this
field,
but
if
it's
not
a
valid
phone
number,
it's
not
going
to
it's.
A
I
think
your
validation
says
it
can
start
with
a
one.
Oh.
B
A
A
B
Because
not
all
these
Regis
regexes
are
written
by
me,
you
know
I
I,
either
the
the
person
that
actually
created
the
concept
for
validation
might
have
had
that
in
there
or
it
might
have
been
a
regex
that
was
just
floating
out
there
somewhere
that
I
grabbed.
So,
okay.
B
A
A
B
B
While
ago
yeah
it's
been
around
for
a
while
yeah
and
you
know,
I
think
the
only
modifications
that
I
may
have
made
from
the
original
may
have
been
pointing
at
the
either
either
pointing
at
the
the
save
button,
because
the
save
button
changed
over
time.
B
So
there
may
be
modifications
for
later
versions
and
if
any
of
the
fields
have
changed
over
the
time,
I
don't
know
that
the
fields
have
changed,
but
I
do
know
that
the
save
button
did
change
so
that
early
version
will
not
work
for
current
versions
of
koha.
So
if
I
don't
have,
if
I,
if
if
there
isn't
a
an
updated
version
in
there
already
with
that
modification,
then
I'll
make
sure
that
that
gets
in
there
By
the
time
these
videos
come
out.
B
But
so
you
know
that's
basically
it
for
addresses
and
phones
and
I.
Think
next
time,
when
we
are
on
our
next
episode,
we'll
probably
cover
some
other
irregularities.
Other
unusual
things
that
we
validate
against
and
wrap
it
up
with
a
third
episode.
But
you
know
validation,
I,
I
love,
the
validation
we've
like
like
you've
shown
with
the
in
the
jQuery
Library.
It's
been
there
since
you
know
3x,
so
we've
had
that
around
for
a
long
time.
B
Not
everybody
incorporates
it
in
in
their
systems
depending
on
you
know
what
they
need
or
what
they
require.
I
mean
I
like
having
our
con.
Our
data
consistent
and.
A
Some
of
the
pieces
have
been
added
into
koha,
as
it
is
like
the
the
change
in
HTML.
That
makes
it
when
you
call
an
input
field
email.
When
you
give
it
that
that
attribute,
then
you
can't
put
an
invalid
email
address
in
there.
It
has
to
be
the
standardized
email
format,
so
so
pieces
of
this
have
made
their
way
into
koha
outside
of
the
jQuery
route.
B
Just
a
reminder
to
everybody:
as
always:
if
you
enjoy
our
videos,
I
mean
you're
checking
them
out
from
our
our
website.
That's
great,
but
we
like
feedback
about
our
videos,
and
so,
if
you
have
comments,
if
you
found
that
I
made
some
gross
error
in
in
what
we've
shown
here
today,
where,
if
you
just
want
to
give
us
some
positive
feedback,
I
visit
our
page
on
YouTube,
it's
youtube.com.
B
And
you
can
find
all
of
our
videos,
but
we
have
our
playlists
specifically
for
our
every
other
Thursday
videos
and
you
can
subscribe
to
just
the
playlist
or
the
entire
Channel.
You
can
like
our
videos,
and
you
can
comment
on
them
and
we'd
love
to
get
feedback.
Yep.
A
From
time
to
time
we
do
go
in
there
and
check
the
comments
and
we
try
to
respond.
That
being
said,
I
don't
think
I've
checked.
The
comments
come
in
next.