-1

我尝试在 Javascript 中定义一个可以接受空格、点、双点和破折号等分隔符的正则表达式。我的正则表达式在没有分隔符时工作,但是当我添加空格或其他分隔符时,它不起作用。

我必须准确:此正则表达式适用于法国电话号码(0123456789 或 01.23.45.56.78 或 01 23 45 67 89,...)。此外,这个正则表达式可以接受替换第一个“0”的“+33”。

这是我的正则表达式

var regex = /^(0|\+33)[1-9]([-.: ]?[0-9]{2}){4}$/;

有人可以告诉我有什么问题吗?

4

2 回答 2

1

谢谢大家的快速回答!

正如 Wiktor Stribiżew 所说,我的正则表达式很好!(谢谢你的链接,我不知道这个网站)。

我已经尝试了很多东西,对于迟到的回复感到抱歉,但我发现我的错误在哪里!

我的函数是下一个(由 onblur 调用):

function verifTel(champ) {
     var regex = /^(0|\+33)[1-9]([-.: ]?[0-9]{2}){4}$/;
     if(!regex.test(champ.value)) {
         surligne(champ, true);
         return false;
     } else {
         surligne(champ, false);
         return true;
     }
 }

surligne()是我更改输入文本颜色的函数。当我写 0123456789 时,我的文本是绿色的,但是当我写 01.23.45.67.89 时,我的文本是红色的。

但我的错误不在 JavaScript 中......我的错误在这里,在我的 HTML 中:

<input id="tel" type="number" placeholder="Téléphone" required onblur="verifTel(this)">

type="number"只接受数字和“e”字母。所以,我已将类型更改为“文本”,现在它可以工作了!

谢谢大家的回答!祝你今天过得愉快!

于 2016-12-30T11:13:11.810 回答
-1

*后加就好[-.: ]。通过此更改,您将支持部件之间的多个空格。

var regex = ^(0|\+33)[1-9]([-.: ]*?[0-9]{2}){4}$;
于 2016-12-30T10:22:32.650 回答