JavaScript RegExp test vrací nesprávnou hodnotu
- Pernick
- Člen | 5
Ahoj, řeším právě trochu zvláštní problém. Týká se JavaScriptu, tak snad píšu do správné sekce.
Chci použít JavaScriptovou funkci na validaci formátu stringu podle
regexpu, konkrétně mi jde o to aby string začínal +
a
pokračoval 12 čísly. Používám tento kód https://codepen.io/…k/pen/jYBwOM?…, na CodePenu i na
regextester.com/21 apod. testerech mi kód funguje, avšak v latte
šabloně ne.
Kód se nachází v latte šabloně v
{block scripts} ... {/block}
, JS kód se vykonává nicméně
.test()
vrací false, ikdyž by měl vracet true. Otázku jsem
pokládal i na stackoverflow (https://stackoverflow.com/…-wrong-value), jenže vzhledem
k tomu, že kód na codepenu funguje, těžko mi někdo pomůže vysvětlit
čím to může být a tak bych se rád zeptal, jestli to nemůže způsobovat
něco nette specifického? Input zobrazuju takto
{input tel class=>"input phoneNumber"}
, JS kód je stejný jako
na uvedeném codepenu.
Šablona má takový formát
<?php
{block content}
...
{input tel class=>"input phoneNumber"}
...
{/block}
{block scripts}
function isPhoneNumberValid(phoneNumber) {
return /^\+\d{12}$/.test(phoneNumber);
}
$(document).ready(function(){
$('.phoneNumber').on('keyup', function() {
if (isPhoneNumberValid(String($(this).val()))) {
console.log('is valid');
} else {
console.log( 'invalid');
}
});
});
{/block}
?>
Mimochodem jsem si vědom
->addRule(Form::PATTERN, 'messages.telFormat', '^\+\d{12}$');
,
potřebuji nicméně rozchodit tuto funkci, už jen proto, že mi nedává moc
smysl, proč nefunguje.
Předem díky za odpovědi
Editoval Pernick (28. 12. 2017 11:46)