JS 获取字符串中的url并返回其下标索引
//获取字符串中的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并返回其下标索引的更多相关文章
- js 获取字符串中某字符第二次出现的下标
var res = "a-b-c-d";var index = find(res,'-',1); //字符串res中第二个‘-’的下标 var ress = res.substri ...
- js 获取字符串中最后一个斜杠后面的内容
var str = "/asdasf/asfaewf/agaegr/trer/rhh"; var index = str .lastIndexOf("\/"); ...
- js 获取字符串中所有的数字和汉字
var re1 = /(\d{1,3})+(?:\.\d+)?/g var re2 = /[\u4e00-\u9fa5]{2,}/g var str="11我22们33两个"; v ...
- 获取字符串中img标签的url集合(转载)
/// <summary> /// 获取字符串中img的url集合 /// </summary> /// <param name="content"& ...
- 正则表达式获取字符串中的img标签中的url链接
废话不多说直接看代码 JavaScript中的代码: var re = /src=\"([^\"]*?)\"/i; var arr = str.match(re); if ...
- JS正则表达式获取字符串中特定字符
JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 实 ...
- 【2017-06-29】在登录页面自动返回上次请求页面、Js获取table中的行数与列数
一.在登录页面自动返回上次请求页面 Request.UrlReferrer比如 if (Request.UrlReferrer != null) { //如果能获取来路地址 Response.Redi ...
- 获取字符串中每个字符出现的次数(利用TreeMap)
案例:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)分析1:定义一个字符串(可以改进为键盘录入)2:定义一个 ...
- C#,.net获取字符串中指定字符串的个数、所在位置与替换字符串
方法一: public static int indexOf (字符串/字符,int从第几位开始,int共查几位) string tests = "1absjjkcbfka2rsbcfak2 ...
随机推荐
- 关于协程:nodejs和golang协程的不同
nodejs和golang都是支持协程的,从表现上来看,nodejs对于协程的支持在于async/await,golang对协程的支持在于goroutine.关于协程的话题,简单来说,可以看作是非抢占 ...
- JAVA平台的理解
主题: JAVA是解释执行还是编译执行? 我的答案 : 混合模式 闲谈 : 1. JAVA(write once,run anywhere): 2. GC(Garbagae Collection), ...
- Backbone学习记录(1)
去年买的<基于MVC的javascript Web富应用开发>,拖到现在还没看完,作者介绍了三个MVC框架,Spine ,backbone和javascriptMVC.1和2在国内的流行度 ...
- RHEL6.5---LVS(IP-TUN)
实验环境: 主机名 IP 所需软件 master eth0==>192.168.30.160(RIP) eth0:1==>192.168.30.130(VIP) ipvsadm node ...
- oracle常用数据类型&约束条件(及案例)
一.数据类型 数据类型 说明 数字 number [小数,整数] number(5,3)表示总共5个数字,小数点后3个,最大值99.999 number(5) 表示整数 最大值99999 字符 ...
- AJPFX简述abstract class和interface的区别
含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是 ...
- springboot之项目打包
通过win中的cmd或者idea中终端,打包并启动项目: 1.mvn package [打包,在target中生成jar] 2.java -jar xxxxx.jar [启动jar]
- viewport实现html页面动态缩放/meta viewport/viewport
页面默认缩放比例为1,最小宽度为375px,在小于375px出现水平滚动条的时候重新计算显示比例缩小界面, <!DOCTYPE html> <html lang="en&q ...
- 使用windows的fsutil命令创建指定大小及类型的测试文件
在软件测试中,对于上传.下载一类功能常常需要用不同大小的文件进行测试. 使用Windows命令fsutil可以生成任意大小.任意类型文件. C:\Users\axia\fsutil file crea ...
- Mac environment setting
java 7 jdk http://www.ifunmac.com/2013/04/mac-jdk-7/ http://blog.sina.com.cn/s/blog_6dce99b101016744 ...