使用正则表达式在 JavaScript/jQuery 中使用多个 if 语句验证文本
use regex to verify a text using a multiple if statements in javascript/jquery
>我需要识别从<input>
提交的数据/文本,如果它包含以下任何一项。 youtube
、vimeo
、normal website
、jpg/png
、plain text
if a youtube link is found {
//do something
} else if a vimeo link is found {
//do something
} else if a normal website is found {
//do something
} else if a (jpg/png) is found {
//do something
} else just a text {
} //do something
目前是我的语法。 YouTube和Vimeo正则表达式格式取自其他帖子。 但我不确定如何为其他人创建正确的正则表达式。
我尝试了一些正则表达式生成器,但它使用起来很复杂
我也想知道这是否是执行多个条件语句的正确方法。
$(function() {
$(document).on('click','.submit', function () {
var data = $('#input').val();
var youtube = /^.*(youtu.be'/|v'/|u'/'w'/|embed'/|watch'?v=)([^#'&'?]*).*/;
var vimeo = /^(http':'/'/|https':'/'/)?(www'.)?(vimeo'.com'/)([0-9]+)$/;
if (data.match(youtube)) {
alert("utube");
}
else if (data.match(vimeo)) {
alert("vimeo");
}
else if ...
});
});
有一百万种不同的方法可以做到这一点。
您需要的其他正则表达式大致是波纹管。此外,如果您将数据小写,它将为您省去一些麻烦
var data = $("#input").val.toLowerCase();
网址
/((([A-Za-z]{3,9}:(?:'/'/)?)(?:[-;:&='+'$,'w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&='+'$,'w]+@)[A-Za-z0-9.-]+)((?:'/['+~%'/.'w-_]*)?'??(?:[-'+=&;%@.'w_]*)#?(?:['w]*))?)/
PNG/JPG 位于字符串的末尾
/(png|jpg|jpeg)$/
我认为纯文本将是剩下的
最有效的方法也是使用 switch 语句,如果不是很大的话
像这样 http://www.w3schools.com/js/js_switch.asp
switch(n)
{
case 1:
execute code block 1
break;
case 2:
execute code block 2
break;
default:
code to be executed if n is different from case 1 and 2
}
当您有多个正则表达式条件要检查时,我建议使用 switch 语句:
var data = $('#input').val();
var youtube = /^.*(youtu.be'/|v'/|u'/'w'/|embed'/|watch'?v=)([^#'&'?]*).*/;
var vimeo = /^(http':'/'/|https':'/'/)?(www'.)?(vimeo'.com'/)([0-9]+)$/;
var normalWebsite = /^(?:ftp|http|https):'/'/(?:['w'.'-'+]+:{0,1}['w'.'-'+]*@)?(?:[a-z0-9'-'.]+)(?::[0-9]+)?(?:'/|'/(?:['w#!:'.'?'+=&%@!'-'/'(')]+)|'?(?:['w#!:'.'?'+=&%@!'-'/'(')]+))?$/;
var image = /<img's+src's*='s*(["'][^"']+["']|[^>]+)>/;
switch (true) {
case youtube.test(data):
alert('youtube');
break;
case vimeo.test(data):
alert('vimeo');
break;
case normalWebsite.test(data):
alert('normal website');
break;
case image.test(data):
alert('image');
break;
default:
// Here we are assuming anything that doesn't match the above is plain text.
// You will need an additional regex if you want to make sure this doesn't contain html or code.
alert('Plain text');
break;
}
相关文章:
- jQuery 在自定义方法中使用 if 语句进行验证
- Javascript - 需要日期验证 IF 语句
- 带有多个if语句的javascript表单验证
- 使用if-else-if-true检查(验证)单选按钮如果未检查则无警报必须检查警报
- Javascript if语句问题,以及如何在jquery中验证颜色
- ng if不验证函数
- Javascript验证不起作用——只要一个if语句为true,它就会停止所有if语句
- IF 语句验证.js
- If-Statement中的Javascript元素验证
- 使用正则表达式在 JavaScript/jQuery 中使用多个 if 语句验证文本
- 在验证元素是否存在时如何考虑 ng-if
- 在页面加载时进行初始验证后验证if语句
- 带有If/Else语句的Jquery验证规则
- ELSE IF语句没有验证信息
- Jquery验证插件if语句
- Jquery if条件验证
- 表单验证-如何使用If和Else If
- javascript中密码验证的If/else语法
- JavaScript,如何验证if字符串
- Javascript if语句验证不正确