JavaScript Regex法语电话号码

时间:2016-12-30 10:19:06

标签: javascript regex phone-number french

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

我必须准确:这个正则表达式是法语电话号码(0123456789或01.23.45.56.78或01 23 45 67 89,...)。此外,这个正则表达式可以接受" + 33"谁替换了第一个" 0"。

这是我的正则表达式

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

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

2 个答案:

答案 0 :(得分:1)

谢谢大家的快速回答!

正如WiktorStribiż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”字母。所以,我已经将类型更改为“text”,现在它正在工作!

谢谢大家的答案!祝你有愉快的一天!

答案 1 :(得分:-1)

只需在*之后添加[-.: ]即可。通过此更改,您将支持各部分之间的多个空格。

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