//获取字符串中的url极其下标索引
function getHttpUrlArray(s) {
var s1 = s.match(/http.*/);
if(s1 == null) {
return null;
}
var yuan = s;
var url = [];
var i=0;
var indexArray = new Array(length);
while(s1 != null) {
var indexInL = { first: 0, last: 0, url: "" };
//获取下标索引
var index = s1.index;
//如果是第一个,加入
if(i == 0) {
indexInL.first = index;
} else {
indexInL.first = index; }
//查找之后的第一个汉字
//获取其下标索引
var s2 = s1[0].match(/[\u4e00-\u9fa5]/);
//若汉字存在
if(s2 != null) {
var noIndex = s2.index;
//如果是第一个,直接加入
if(i == 0) {
indexInL.last = noIndex + index;
} else {
indexInL.last = noIndex + index;
}
//取得url
indexInL.url = s1[0].substring(0, noIndex);
s = s.substring(noIndex + index);
s1 = s.match(/http.*/);
} else {
//如果是第一个,直接加入
if(i == 0) {
indexInL.last = yuan.length;
} else {
indexInL.last = yuan.length;
}
s = s.substring(index);
indexInL.url = s;
s1=null;
}
indexArray[i] = indexInL;
i++;
}
return indexArray;
}
比较笨,不会写正则表达式,只好用笨方法了。。。

有时候我们会复制带格式的内容,但是我们又需要将自己手写的网址添加上解析出来,下面的是将复制的url过滤,只返回手动添加的url

function getHttpUrlArray(s) {
var s0 = s.match(/http.*/);
var s1 = s.match(/[^'"=]http.*/);
console.log(s1)
var yuan = s;
var url = [];
var i = 0;
var indexArray =[];
var indexInL1 = { first: 0, last: 0, url: "" };
if(s0 != null) {
if(s0.index == 0) {
var s0end = s.match(/[\u4e00-\u9fa5<\s,,。;;]/);
if(s0end != null) {
indexInL1.first = 0;
indexInL1.last = s0end.index;
indexInL1.url = s.substring(0, s0end.index)
} else {
indexInL1.first = 0;
indexInL1.last = s.length;
indexInL1.url = s.substring(0, s.length)
}
indexArray[i] = indexInL1;
i++;
}
}
if(s1 == null && s0 == null) {
return null;
} else if(s1 == null && s0 != null) {
return indexArray;
}
while(s1 != null) {
console.log(s1)
var indexInL = { first: 0, last: 0, url: "" };
//获取下标索引
var index = s1.index;
indexInL.first = index + 1;
console.log("s1开始", index + 1)
//查找之后的第一个汉字或结束标签或,。;:
//获取其下标索引
var s2 = s1[0].substring(1).match(/[\u4e00-\u9fa5<\s,,。;;]/);
//若汉字存在
if(s2 != null) {
var noIndex = s2.index;
indexInL.last = noIndex + index + 1;
console.log("s2 结束", noIndex + index + 1)
//取得url
indexInL.url = s1[0].substring(1, noIndex + 1);
s = s.substring(noIndex + index + 1);
console.log("s的值 ", s)
s1 = s.match(/[^'"=]http.*/);
} else {
//如果是第一个,直接加入
if(i == 0) {
indexInL.last = s.length;
} else {
indexInL.last = s.length;
}
s = s.substring(index + 1);
indexInL.url = s;
console.log("url ", s)
s1 = null;
}
indexArray[i] = indexInL;
i++;
}
return indexArray;
}

JS 获取字符串中的url并返回其下标索引的更多相关文章

  1. js 获取字符串中某字符第二次出现的下标

    var res = "a-b-c-d";var index = find(res,'-',1); //字符串res中第二个‘-’的下标 var ress = res.substri ...

  2. js 获取字符串中最后一个斜杠后面的内容

    var str = "/asdasf/asfaewf/agaegr/trer/rhh"; var index = str .lastIndexOf("\/"); ...

  3. js 获取字符串中所有的数字和汉字

    var re1 = /(\d{1,3})+(?:\.\d+)?/g var re2 = /[\u4e00-\u9fa5]{2,}/g var str="11我22们33两个"; v ...

  4. 获取字符串中img标签的url集合(转载)

    /// <summary> /// 获取字符串中img的url集合 /// </summary> /// <param name="content"& ...

  5. 正则表达式获取字符串中的img标签中的url链接

    废话不多说直接看代码 JavaScript中的代码: var re = /src=\"([^\"]*?)\"/i; var arr = str.match(re); if ...

  6. JS正则表达式获取字符串中特定字符

    JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test  实 ...

  7. 【2017-06-29】在登录页面自动返回上次请求页面、Js获取table中的行数与列数

    一.在登录页面自动返回上次请求页面 Request.UrlReferrer比如 if (Request.UrlReferrer != null) { //如果能获取来路地址 Response.Redi ...

  8. 获取字符串中每个字符出现的次数(利用TreeMap)

    案例:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)分析1:定义一个字符串(可以改进为键盘录入)2:定义一个 ...

  9. C#,.net获取字符串中指定字符串的个数、所在位置与替换字符串

    方法一: public static int indexOf (字符串/字符,int从第几位开始,int共查几位) string tests = "1absjjkcbfka2rsbcfak2 ...

随机推荐

  1. 开发者神器!Windows上最强大的虚拟桌面工具-Dexpot

    简介 : 用过Linux和Mac计算机的人都知道 , 这两个系统上都有个多桌面的功能非常使用 . 而在Windows上并没有该项功能 , 虽然目前Win10已经增加了多桌面的程序 , 但使用上仍体验不 ...

  2. 洛谷 P2261 [CQOI2007]余数求和 ||整除(数论)分块

    参考:题解 令f(i)=k%i,[p]表示不大于p的最大整数f(i)=k%i=k-[k/i]*i令q=[k/i]f(i)=k-qi如果k/(i+1)=k/i=qf(i+1)=k-q(i+1)=k-qi ...

  3. linux中用户组和用户

    linux中用户组和用户 1.介绍 在我们的linux系统,有很多用户组,也可以手动创建用户组,不同的用户组下面有很多的用户. 2.创建用户组及有关的命令 groupadd phpzu:创建一个php ...

  4. centOS 部署服务器(一)

    接下来我所写的博客仅仅是为了记录我的学习过程,与其他无关. 由于公司换用了亚马逊服务器,用的是它的RDS数据库,所以就没有像以前的项目部署的时候使用mysql,不过要下载安装mysql-proxy,字 ...

  5. hbuilder 中文乱码

    这是因为HBuilder默认文件编码是UTF-8,你可以在工具-选项-常规-工作空间选项中设置默认字符编码

  6. JAVA常用知识总结(六)——Mybatis

    为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取, ...

  7. web 另类方法实现“另存为”功能

    HTML5 的 FileReader 带给我们很强大的文件只读访问能力,可是在 HTML5 新增的 JS 中却没有发现有方便的另存到本地文件的相关 API,以往的办法要么调用浏览器的 save as ...

  8. python正则表达式提取中文

    import urllib.requestimport reurl='https://songsearch.kugou.com/song_search_v2?callback=jQuery112407 ...

  9. 正则表达式test报错 is not a function

    var reg = "/^1[34578]\d{9}$/"; //错误格式,这是一个字符串 var reg2 = /^1[34578]\d{9}$/; //正确格式 reg .te ...

  10. PowerShell~语法与运算符

    基本语法 变量:$开头 $a = "Hello" 条件语句:if else ) { Write-Host "偶数" } else{ Write-Host &qu ...