js中用正则表达式判断字符串的格式

求助,求一个用在js里的正则表达式用来判断str的内容:
var str = "要检测的字符串";
如果str的格式符合以下四种情况里的一种就直接跳过,否则就对str做其他处理。
1.超链接格式:a(地址)[文本] 如:a(xxx)[xxx]
2.图片格式:img[地址] 如:img[xxxx]
3.文件格式:file(地址)[文本] 如:file(xxxx)[xxxx]
4.音频格式:audio[地址] 如:audio[xxxx]
5.视频格式:video[地址] 如:video[xxxx]

let regex = /^((a|file)\(.+\)|(img|aduio|video))\[.+]$/i;

test('should test ok',()=>{
    let regex = /^((a|file)\(.+\)|(img|aduio|video))\[.+]$/i;
    expect(regex.test('file(a)[b]')).toBe(true);
    expect(regex.test('file[b]')).toBe(false);
    expect(regex.test('file(b)')).toBe(false);
    expect(regex.test('a(a)[b]')).toBe(true);
    expect(regex.test('img[c]')).toBe(true);
    expect(regex.test('aduio[e]')).toBe(true);
    expect(regex.test('video[e]')).toBe(true);
    expect(regex.test('video(d)[e]')).toBe(false);
    expect(regex.test('aduio(d)[e]')).toBe(false);
    expect(regex.test('img(d)[e]')).toBe(false);
})

追问

请问我在代码里面判断是写成下面这个样吗?
var str = "要检测的字符串";
var regex = /^((a|file)\(.+\)|(img|aduio|video))\[.+\]$/i;
if(regex.test(str)){
//符合格式跳过
}else{
//不符合格式,直接其他操作
}

追答

是呀,注意最后的\]已经更改,因为]不需要转义。

温馨提示:内容为网友见解,仅供参考
无其他回答

js中用正则表达式判断字符串的格式
()=>{ let regex = \/^((a|file)\\(.+\\)|(img|aduio|video))\\[.+]$\/i; expect(regex.test('file(a)[b]')).toBe(true); expect(regex.test('file[b]')).toBe(false);

js中用什么方法匹配前后的数据?
在JavaScript中,可以使用正则表达式来匹配前后的数据。正则表达式是一种用于匹配字符串模式的工具,可以用来检测字符串是否符合特定的模式,并进行相应的处理。下面是一些常用的正则表达式匹配方法:match()方法:使用正则表达式来匹配字符串,并返回匹配到的结果数组。例如:javascriptCopy codevar str = "Hello...

如何用标签在jsp页面中判断数据是否为整数
在jsp页面中判断数据是否为整数可以用js的正则表达式。\/ 用途:检查输入字符串是否符合正整数格式 输入:s:字符串 返回:如果通过验证返回true,否则返回false \/ function isNumber( s ){ var regu = "^[0-9]+$";var re = new RegExp(regu);if (s.search(re) != -1) { return true;} ...

js如何判断字符串是(16-19位数字)或者(4位数字+8个*号+4位数字)_百度...
用正则表达式处理 var reg = \/^(\\d{16,19})|(\\d{4}\\*{8}\\d{4})$\/g;alert(reg.test("1234567891234567"));试试这段代码

在js中正则表达式如何判断用户输入的内容只能是数字和字母
3、\\d表示匹配数字。4、a-z表示匹配任意英文字母。5、[]是集合的意思,表示一个字符是[]中任意一个。6、+表示匹配1个或1个以上,[]+表示匹配[]中的1个以上字符。7、表达式后面的i表示忽略大小写。8、test函数用于验证字符串是否满足正则表达式,如果满足该正则表达式返回true,否则返回false。

如何用javascript判断字符串只能是数字或字母组合
js没有原生的方法 str = ...但是可以用正则表达式 纯数字的正则 var regexp1 = \/^[0-9]*$\/g;纯字母正则 var regexp2 = \/^[a-z]*$\/gi;regexp1.test(str) 返回true那么纯数字 regexp2.test(str) 返回true纯字母

求一js正则表达式验证YYYY\/MM\/DD格式日期。
vardate=str;varresult=date.match(\/^([0]?[1-9]|[1|2][0-9]|[3][0|1])[\/]([0]?[1-9]|[1][0-2])[\/]([0-9]{4}|[0-9]{2})$\/);if(result==null)returnfalse;vard=newDate(result[3],result[2]-1,result[1]);return(d.getFullYear()==result[3]&&(d....

js检测字符串的正则表达式,仅限2-20位中文,且兼容符号·
var myregexp = \/[\一-\龥·]{2,20}\/g;

javascript中怎么验证 一个字符串 只能是数字和字母
用正则表达式啊var str = "string"var re;re = \/[a-zA-Z0-9]{6,16}\/; \/*匹配6-16个字符,只能是数字或字母,不包括下划线的正则表达式*\/if (re.test(str)) { \/\/匹配}else { \/\/不匹配} 本回答由提问者推荐 举报| 答案纠错 | 评论 3 2 tonytunami 采纳率:77% 擅长: 其他编程语言 数据库DB...

js 正则表达式获取字符串开头结尾的数字
\/\/ 正则var str = '111_abc_222';var match = str.match(\/(^\\d+)|(\\d+$)\/g);var num1 = match[0];var num2 = match[1];alert(num1);alert(num2);\/\/ 不用非要正则吧var str = '111_abc_222';var arr = str.split('_');var num1 = arr[0];var num2 = arr[arr....

相似回答