Merged PR 1105: added in postcode validation regex and error msg
added in postcode validation regex and error msg Related work items: #10571
This commit is contained in:
@@ -214,7 +214,10 @@ let PersonalDetails = (props) => {
|
||||
|
||||
let errorsobj = {};
|
||||
|
||||
const required = (value) => (value ? undefined : "Is required");
|
||||
const required = (value) =>
|
||||
value
|
||||
? undefined
|
||||
: t("account:register-new-account-postcode-label-errormsg");
|
||||
const emailRegex =
|
||||
/(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
|
||||
|
||||
@@ -228,6 +231,14 @@ let PersonalDetails = (props) => {
|
||||
? "Invalid phone number"
|
||||
: undefined;
|
||||
|
||||
const postcode = (value) =>
|
||||
value &&
|
||||
!/^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/i.test(
|
||||
value
|
||||
)
|
||||
? t("account:register-new-account-postcode-invalid-label-errormsg")
|
||||
: undefined;
|
||||
|
||||
const [hasErrors, setHasErrors] = useState("");
|
||||
|
||||
const onHandleSubmit = (values) => {
|
||||
@@ -375,8 +386,7 @@ let PersonalDetails = (props) => {
|
||||
type="text"
|
||||
className="govuk-input govuk-input--width-5"
|
||||
label={t("account:account-postcode-label")}
|
||||
validate={[required]}
|
||||
errorMsg="Is required"
|
||||
validate={[required, postcode]}
|
||||
/>
|
||||
</fieldset>
|
||||
<div className="govuk-button-group">
|
||||
|
||||
@@ -84,7 +84,10 @@ const RegisterForm = (props) => {
|
||||
const emailRegex =
|
||||
/(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
|
||||
|
||||
const required = (value) => (value ? undefined : "Is required");
|
||||
const required = (value) =>
|
||||
value
|
||||
? undefined
|
||||
: t("account:register-new-account-postcode-label-errormsg");
|
||||
const email = (value) =>
|
||||
value && !emailRegex.test(value) ? "Invalid email address" : undefined;
|
||||
const phoneNumber = (value) =>
|
||||
@@ -106,6 +109,14 @@ const RegisterForm = (props) => {
|
||||
: undefined;
|
||||
const minLength5 = minLength(5);
|
||||
|
||||
const postcode = (value) =>
|
||||
value &&
|
||||
!/^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/i.test(
|
||||
value
|
||||
)
|
||||
? t("account:register-new-account-postcode-invalid-label-errormsg")
|
||||
: undefined;
|
||||
|
||||
const [hasErrors, setHasErrors] = useState("");
|
||||
|
||||
const onHandleSubmit = (values) => {
|
||||
@@ -298,10 +309,7 @@ const RegisterForm = (props) => {
|
||||
label={t(
|
||||
"account:register-new-account-postcode-label"
|
||||
)}
|
||||
validate={[required]}
|
||||
errorMsg={t(
|
||||
"account:register-new-account-postcode-label-errormsg"
|
||||
)}
|
||||
validate={[required, postcode]}
|
||||
/>
|
||||
</fieldset>
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ const RenderTextfield = ({
|
||||
{touched && error && (
|
||||
<span id={id + "-error"} className="govuk-error-message">
|
||||
<span className="govuk-visually-hidden">Error:</span>{" "}
|
||||
{errorMsg}
|
||||
{error}
|
||||
</span>
|
||||
)}
|
||||
<input
|
||||
@@ -101,7 +101,16 @@ export function Textfield(props) {
|
||||
maxFieldLength,
|
||||
hint,
|
||||
} = props;
|
||||
const required = (value) => (value ? undefined : "Required");
|
||||
const required = (value) =>
|
||||
value ? undefined : t("newappeal:is-required-label");
|
||||
const postcode = (value) =>
|
||||
value &&
|
||||
!/^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/i.test(
|
||||
value
|
||||
)
|
||||
? t("newappeal:invalid-postcode-label")
|
||||
: undefined;
|
||||
|
||||
let { t } = useTranslation();
|
||||
|
||||
if (name == "pinswg_name") {
|
||||
@@ -150,7 +159,6 @@ export function Textfield(props) {
|
||||
className="govuk-input govuk-input--width-20"
|
||||
validate={eval(validation)}
|
||||
label={props.label}
|
||||
errorMsg="Is required"
|
||||
maxFieldLength={props.maxFieldLength}
|
||||
/>
|
||||
)
|
||||
|
||||
@@ -72,6 +72,7 @@ const BuildProgress = (props) => {
|
||||
aria-current="step"
|
||||
data-show=""
|
||||
id={FieldsTranslations(progObj[index].title)
|
||||
.toString()
|
||||
.replace(/\s+/g, "-")
|
||||
.toLowerCase()}
|
||||
>
|
||||
@@ -112,6 +113,7 @@ const BuildProgress = (props) => {
|
||||
FieldsTranslations(
|
||||
progObj[index].title
|
||||
)
|
||||
.toString()
|
||||
.replace(/\s+/g, "-")
|
||||
.toLowerCase()
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control validation="[required]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
</rows>
|
||||
</section>
|
||||
|
||||
@@ -553,7 +553,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control validation="[required]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
</rows>
|
||||
</section>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -553,7 +553,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control validation="[required]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
</rows>
|
||||
</section>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -313,7 +313,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control validation="[required]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
</rows>
|
||||
</section>
|
||||
|
||||
@@ -553,7 +553,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
</rows>
|
||||
</section>
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control validation="[required]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
</rows>
|
||||
</section>
|
||||
|
||||
@@ -550,7 +550,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -624,7 +624,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
<labels>
|
||||
<label description="Site Address Postcode" />
|
||||
</labels>
|
||||
<control id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
<control validation="[required,postcode]" id="pinswg_siteaddresspostcode" classid="{4273EDBD-AC1D-40d3-9FB2-095C621B552D}" datafieldname="pinswg_siteaddresspostcode" disabled="false" />
|
||||
</row>
|
||||
<row>
|
||||
<labels>
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"register-new-account-county-label-errormsg": "Yn ofynnol",
|
||||
"register-new-account-postcode-label": "Cod post",
|
||||
"register-new-account-postcode-label-errormsg": "Yn ofynnol",
|
||||
"register-new-account-postcode-invalid-label-errormsg": "Cod post annilys",
|
||||
"register-new-account-check-details-paragraph": "Gwiriwch fod y manylion a nodoch yn gywir.",
|
||||
"register-new-account-confirmation-email": "Rydym wedi anfon e-bost cadarnhau atoch.",
|
||||
"register-new-account-sub-heading-what-next": "Beth sy'n digwydd nesaf",
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
"yes-option-label": "Ydw",
|
||||
"no-option-label": "Na",
|
||||
"select-an-option-label": "Dewiswch opsiwn",
|
||||
"is-required-label": "Yn ofynnol",
|
||||
"invalid-postcode-label": "Cod post annilys",
|
||||
"hascas-confirmation-label": "Cadarnhau bod angen apêl HAS/CAS",
|
||||
"hascas-confirmation-hint": "Mae'r llwybr apêl hwn yn berthnasol dim ond os yw'ch cais yn ymwneud â gwrthod caniatâd cynllunio, neu wrthodiad i gais i amrywio neu ddileu amod sydd ynghlwm wrth ganiatâd blaenorol. Bydd pob cais arall yn cael ei gyflwyno drwy Apêl Cynllunio Adran 78",
|
||||
"about-you-page-title": "Amdanat ti",
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"register-new-account-county-label-errormsg": "Is required",
|
||||
"register-new-account-postcode-label": "Postcode",
|
||||
"register-new-account-postcode-label-errormsg": "Is required",
|
||||
"register-new-account-postcode-invalid-label-errormsg": "Invalid postcode",
|
||||
"register-new-account-check-details-paragraph": "Check that the details you entered are correct.",
|
||||
"register-new-account-confirmation-email": "We have sent you a confirmation email.",
|
||||
"register-new-account-sub-heading-what-next": "What happens next",
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
"yes-option-label": "Yes",
|
||||
"no-option-label": "No",
|
||||
"select-an-option-label": "Select an option",
|
||||
"is-required-label": "Is required",
|
||||
"invalid-postcode-label": "Invalid postcode",
|
||||
"hascas-confirmation-label": "Confirm HAS/CAS appeal is required",
|
||||
"hascas-confirmation-hint": "This appeal route is only applicable if your application relates the refusal of planning permission, orthe refusal of an application to vary or remove a condition attached to a previous permision. All other applications will be submitted via a Section 78 Planning Appeal",
|
||||
"about-you-page-title": "About you",
|
||||
|
||||
Reference in New Issue
Block a user