JavaScript正则表达式代码匹配字符和数字的问题

Trouble with JavaScript regex code to match characters and numbers

本文关键字:数字 问题 字符 正则表达式 代码 JavaScript      更新时间:2024-03-17

我需要帮助来解决使用正则表达式的问题。

我编写了以下 JavaScript 代码:

var s = '/Date(1341118800000)/';
var regex = new RegExp('^/Date'('d+')/$');
if ( typeof s === 'string' && s.match(regex) )
    s = 'abc';
alert (s);

我写了一个正则表达式,我想匹配以以下确切字符开头的字符串:/Date(后跟一个或多个数字,后跟确切的字符)/,仅此而已。

在上面的JavaScript代码中,我希望字符串'abc'应该分配给s,但是在这段代码结束时,s的值是'/Date(1341118800000(/'。

我该如何解决这个问题?

转义斜杠已经被字符串消耗,即 "'(" === "(" .生成的未转义字符串被传递给new RegExp(解释为特殊字符。

您应该使用正则表达式文字并转义/

var regex = /^'/Date'('d+')'/$/;

若要测试字符串是否匹配,可以使用:

regex.test(s);

问题是"/^/Date'('d+')/$/"在javascript中转换为"/^/Date(d+)/$/"

"/^/Date'('d+')/$/" == "/^/Date(d+)/$/" // returns true

因此,只需逃离退格键,' ,即可解决问题。

var regex = new RegExp('^/Date''(''d+'')/$');

我相信

你正在寻找这段代码:

var s = '/Date(1341118800000)/';
s = s.match(/^'/Date'(('d+)')'/$/)[1];
alert(s);

在这里测试它。