如何用JS正则表达式截取URL的图片名称和后缀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用JS正则表达式截取URL的图片名称和后缀相关的知识,希望对你有一定的参考价值。

例:/upload/activity/xueba/20161025/091909_ce15d6bf-1089-4002-9ff6-016e13e420e5.gif
1,获取图片名称
正则表达式:[^\\/\\\\]+$
匹配结果:091909_ce15d6bf-1089-4002-9ff6-016e13e420e5.gif
2,获取后缀
正则表达式:[^\\.]\\w*$
匹配结果:gif

参考技术A var fileName="test.jpg";
例:文件名.match(/[^\.]\w*$/)[0];
console.log(fileName.match(/[^\.]\w*$/)[0]);
打印输出 :后缀名 jpg
var houzhui=fileName.match(/[^\.]\w*$/)[0].toString();
var name=(fileName.replace(houzhui,"")).replace(".","");
console.log(name);
打印输出: 图片名 test

如何用正则表达式实现规定用户输入密码的格式为:(长度6到18个字符,不能全为重复字母,或者连续字母)

例如aaaaaa或者abcdefgh这样都不通过,但是aabbcccdddd可以。如果js不能实现,用什么方法可以实现?

// 存在一个你不容易发现的问题,基本能解决你的问题
/**
 * checkPassword函数,参数为要检验的密码pwd,
 * 如果pwd符合规则,返回true,否则返回false
 */
function checkPassword(pwd)
    // 长度为6到18个字符
    var reg = /^.6,18$/;
    if(!reg.test(pwd))
        return false;
    
    // 全部重复
    var repeat = true;
    // 连续字符
    var series = true;

    var len = pwd.length;
    var first = pwd.charAt(0);
    for(var i=1;i<len;i++)
        repeat = repeat && pwd.charAt(i) == first;
        series = series && pwd.charCodeAt(i) == pwd.charCodeAt(i-1) + 1;
    
    return !(repeat || series);

参考技术A function checkPwd(str)

    var str=str.replace(/(^\\s*)|(\\s*$)/g,''),
        len=str.length,
        error='error:none', // 无错误
        repeat=new RegExp('(\\\\w)\\\\1'+(len-1)+''),
        series='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    if(len<6 || len>18)
        error='error:length'; // 错误:字符数
    else if(repeat.test(str))
        error='error:repeat'; // 错误:重复
    else if(series.indexOf(str)>=0)
        error='error:series'; // 错误:连续
    // alert(error); 测试用
    return error=='error:none';

参考技术B 这个要用正则+js判断来作

正则可以判断长度以及是否为字母,但是无法判断输入数据是否重复和连续

以上是关于如何用JS正则表达式截取URL的图片名称和后缀的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则判断邮箱后缀?

如何用js匹配url的正则表达式

js截取相应的域名----正则匹配法 和校验Url 正则表达式

js正则获取字符串中所有图片名称

js 如何用正则表达式提取数据

批处理如何用正则提取字符串中间的数字,和结尾的数字