搜索正则表达式并过滤它

时间:2018-06-07 12:54:20

标签: javascript

您好我尝试在带有正则表达式的字符串中查找变量日期,之后我想将日期保存在新变量中,我的代码如下所示:

var valide =new RegExp(/\d{2}([./-])\d{2}\1\d{4}$/mg);
var text = 'lalaahfdsdfl 02.02.1989';//example
if(valide.test(text) === true){

}

如何将找到的日期(02.02.1989)放入新变量

5 个答案:

答案 0 :(得分:0)

您可以在Regex表达式中创建组(只需在括号之间放置所需的值),然后在use this中创建组以获取特定的组值。

但请注意,我认为你的正则表达式是错误的......似乎你以1加4位结尾

答案 1 :(得分:0)

您可以对字符串使用匹配:

var valide =new RegExp(/\d{2}([./-])\d{2}\1\d{4}$/mg);
var text = 'lalaahfdsdfl 02.02.1989';//example

console.dir(text.match(valide)) // ["02.02.1989"]

if(valide.test(text) === true){

}

答案 2 :(得分:0)

您可以使用match

var valide =new RegExp(/\d{2}([./-])\d{2}\1\d{4}$/mg);
var text = 'lalaahfdsdfl 02.02.1989';//example

var foundDate = text.match(valide);

console.log(foundDate);

此外,如果将([./-])切换为([-.]),则可以使正则表达式更简单,因为如果-首先出现在字符类中,则img被视为文字匹配。< / p>

答案 3 :(得分:0)

使用REGEXP函数match,您可以提取与正则表达式匹配的部分。

在此之后你会得到一个物体。在这种情况下,我把它变成一个字符串,这样你就可以用它做更多的事情。

var myDate = text.match(valide).toString();

希望这会有所帮助:&gt;

var valide =new RegExp(/\d{2}([./-])\d{2}\1\d{4}$/mg);
var text = 'lalaahfdsdfl 02.02.1989';//example

if(valide.test(text) === true){
var myDate = text.match(valide).toString();
console.log(myDate)
}

答案 4 :(得分:0)

你可以这样做。
var result = text.match(valide)

以下是匹配方法String.prototype.match

的参考