• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 一个关于JS的正则匹配问题

一个关于JS的正则匹配问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了js兼容性问题,js跨域问题,js浏览器兼容问题,js路径问题,js中文乱码问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:一个关于JS的正则匹配问题
描述:

尝试着写了一个简单的JQ 插件,是关于GitHub的, 代码在:https://github.com/rccoder/GitHub-Card

但是我发现默认加载的图片太大了,加上其他的种种原因,有点吃不消,发现通过url可以改变图片的大小,比如:

https://avatars3.githubusercontent.com/u/7554325?v=1&s=360

后面的360就能控制图片的大小,我的想法是通过正则去改变他,测试代码如下

var a = 'https://avatars3.githubusercontent.com/u/7554325?v=1'
a.replace(/v=.*/g, 'v=1&s=80')

正如我所预测的,没有任何的问题,a的值会变成

'https://avatars3.githubusercontent.com/u/7554325?v=1&s=80

于是我在我的代码中的GitHub-Card.js中对取到的对象做了如下的修改:

function getUserInfo(username, callback) {
        $.ajax({
            url: 'https://api.github.com/users/' + username,
            method: 'get',
            dataType: 'jsonp'
        }).done(function(msg) {
            if(msg && msg.meta && msg.meta.status == 200) {
                if(msg.data.avatar_url) {
                    console.log(msg.data.avatar_url);
                    var tep = msg.data.avatar_url;
                    console.log(typeof(tep))
                    tep.replace(/v=.*/g, 'v=1&s=80');
                    console.log(tep)
                    msg.data.avatar_url = tep;
                }
                var userdata = msg.data;
                callback(null, userdata);
            }
            else {
                var userdata = '';
                callback(404);
            }
        })
    };

但是让我奇怪的是并没有发生替换,前后输出的tep都是同样的一个值

然后我测试了一下typeof,前面单独的a返回的是"string",而这里的tep返回的是string

感觉是这儿的问题,但是我不知道应该如何去解决,谢谢!


解决方案1:

因为replace函数作用后会返回新的字符串,而不是修改原字符串,所以你的写法少了东西,应该是tep = tep.replace(xxx)

解决方案2:

js中大多数字符串操作的方法都会生成新的字符串或数组等,不改变原有字符串,楼上的回答应该是可以的

解决方案3:

tep=tep.replace(/v=.*/g, 'v=1&s=80');


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • js尚未实现问题
  • 一个关于JS的正则匹配问题

相关文章

  • 2017-06-07 如何使用sequelpro等可视化工具连接vagrant上的mysql?
  • 2017-06-07 怎么估算网站需要的七牛配置?
  • 2017-06-07 (golang)大数据如何入门?爬虫软件有哪些?相关的网站或者聚集地是在哪里?
  • 2017-06-07 node端的缓存策略
  • 2017-06-07 iterm配置utf8编码,本地终端中文不乱码,ssh远程中文乱码,咋整啊
  • 2017-06-07 七牛JSSDK上传图片后,自动生成的文件名和Hash不一致这么回事?
  • 2017-06-07 关于邀请的问题
  • 2017-06-07 jboss运行出错找不到结果
  • 2017-06-07 (shell)'\t'分隔的join问题
  • 2017-06-07 阿诺,同志们通常情况下一天多少行有效代码?啥语言?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • vagrant无法挂载共享文件夹
    • 怎么使用python模块匹配到爬取的网页源代码中的变量值
    • 跪求:在windows环境下如何在jboss下部署opentaps?或者ofbiz
    • python中mainloop是如何循环的?
    • Python爬虫爬资源时由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。怎么破?
    • (flask)jinja2的for循环中的被迭代的对象是如何传入的
    • 如何完成fragment中数据的导入和检索?
    • 大家第一个阅读的开源代码是什么?
    • 求最长回文子串
    • 仙剑奇侠传迷宫穿越程序(原创)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有