如何使用JS / jquery正则表达式从字符串中删除不匹配的部分

时间:2017-05-05 14:16:42

标签: javascript jquery regex

我有正则表达式/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\\=]*)/g来检查有效的网址。但它接受:

https://www.google.com
google.com
https://google.com
dev.google.com

对我来说很好,但我希望当用户输入这些值时,过滤后的值将为google.com,我必须通过AJAXUI部分的输入相同(意思是浏览器)。我知道这是可能的,但我不能。

任何参考都会有所帮助 提前致谢

3 个答案:

答案 0 :(得分:1)

尝试



var regExp = /\w+\.\w+(?=$|\/)/;
var matches1 = regExp.exec("https://www.google.com/images");
var matches2 = regExp.exec("google.com");
var matches3 = regExp.exec("https://google.com");
var matches4 = regExp.exec("dev.google.com");


//matches1[0] contains the value between the parentheses
console.log(matches1[0]);
console.log(matches2[0]);
console.log(matches3[0]);
console.log(matches4[0]);




以上所有内容都会为您提供google.com'

答案 1 :(得分:0)

尝试以下常规exp。 :

var a = /(\w*\.\w*)$|(\w*\.\w*)(\/)/;

说明:

OR的第一部分检查x.y的最后一次出现 OR的第二部分在" /"开始之前检查x.y;关键字

答案 2 :(得分:0)

检查匹配部分是否应出现在URL的末尾或任何路径,片段或查询字符串之前:

\w+\.\w+(?=$|[\/?#])

Live demo