Javascript HTML电话号码验证

Javascript HTML电话号码验证,javascript,php,html,jquery,Javascript,Php,Html,Jquery,我正在一个HTML网站上工作,我有点陷入了一种情况 客户只想添加电话号码,不包含字母字符,条件是如果有人在10位电话号码前输入+91(即+917894561236),则应接受电话号码字段并提交电话号码如果他没有添加+91,该字段也应该接受10位电话号码,但不少于10位 这是我的html: 电话号码* 下面的jQuery脚本用于从电话字段中删除字母,但是在输入字段中添加type=“tel”不会阻止用户键入字母 <script> //to get only numeric value

我正在一个HTML网站上工作,我有点陷入了一种情况

客户只想添加电话号码,不包含字母字符,条件是如果有人在10位电话号码前输入+91(即+917894561236),则应接受电话号码字段并提交电话号码如果他没有添加+91,该字段也应该接受10位电话号码,但不少于10位

这是我的html:


电话号码*
下面的jQuery脚本用于从电话字段中删除字母,但是在输入字段中添加
type=“tel”
不会阻止用户键入字母

<script>
//to get only numeric values in phone number field
jQuery('#phoned').keyup(function () { 
    this.value = this.value.replace(/[^0-9+\.-]/g, '');
});
</script>

//仅获取电话号码字段中的数值
jQuery('#phoned').keyup(函数(){
this.value=this.value.replace(/[^0-9+\.-]/g');
});

根据我上面的评论,尝试以下方法:

<div class="form-group">
  <label for="phone">Enter your phone number:</label>
  <input type="tel" id="phone" name="phone" placeholder="+910123456789 or 0123456789" pattern="[+0-9]{10,13}">
</div>

输入您的电话号码:
显示价值

试试这一款,它会起作用的,和我为我的客户使用的一样

<div class="form-group">
  <label for="phone">Enter your phone number:</label>
    <input type="text" class="form-control" title="please enter a valid phone number" pattern="^(\+91[\-\s]?)?[0]?(91)?[6789]\d{9}$" oninput="if (typeof this.reportValidity === 'function') {this.reportValidity();}" />
</div>

输入您的电话号码:

您的输入应该是
type='tel'
,您可以添加一个
pattern
属性,该属性使用正则表达式来满足您的需求。如果执行此操作,则可以删除
maxlength
,并且占位符应与预期模式匹配,以避免混淆用户。使用正则表达式获得所需结果。删除
maxlength
,因为这样您就不能接受
+91
或使用
manlength
作为13(10位数表示手机号码,3位数/char表示+91)。您可以使用
minlength
as 10作为您需要的10位手机号码。要匹配手机号码,您可以使用
[6-9]{1}[0-9]{9}
,其中号码从6或7或8或9开始,其余9位数字可以是任意数字。对于匹配+91,您可以执行类似操作thing@Cre您不能在页面上到处散布代码要求。如果您提供了一些应该允许和不应该允许的示例字符串,您的问题将更加清楚。因为没有证据表明你已经研究并试图自行解决问题,所以你收到了迪恩投票。我们不是要“为你做你的工作”,我们在这里帮助你修复失败的尝试。“帮助吸血鬼”不好。@请不要编辑已关闭的问题,除非编辑使该问题成为重新打开的良好候选问题。我之所以这样说,是因为您的编辑已将此问题置于重新打开队列中,但OP需要提供更多的清晰度/详细信息。我明白了,对此表示抱歉。它出现在建议编辑审阅队列中。我批准了编辑,但自己改进了。我会注意避免编辑封闭式问题,谢谢你指出。是的,这正是我想要的,我可以做一些小改动吗?比如,这不能接受以1、4、5、3、2开头的数字,也不包括字母Batseither,你可以包括[6789]在这里开始数字,或者你可以在那里添加0-9以上的cmnt是我的当前代码,但是用户仍然可以键入alphabats,但是我们应用了验证,我不希望用户键入alphabats此模式允许用户仍然可以键入alphabats