我想在后端创建一个正则表达式,并将其共享到客户端进行验证。因此,虽然下面的工程在客户端
/^\d{0,10}$/.test('X')
由于后端只能返回字符串形式的正则表达式,因此当它是字符串时,下面的失败
"/^\d{0,10}$/".test('X')
我该怎么解决这个问题?
elcex8rz1#
JS可以像你想的那样处理字符串正则表达式,但是你只需要用一个RexExp对象来解析这个字符串。
RexExp
var regex_str_from_server = "^\\d{0,10}$"; var regex = new RegExp(regex_str_from_server); console.log('X', regex.test('X')); console.log('45', regex.test('45'));
请记住,当使用字符串正则表达式时,您不需要在开头和结尾使用/斜杠,并且任何\斜杠(如使用\d的地方)必须通过添加另一个斜杠进行转义,以便在正则表达式字符串中看起来像\\d。
/
\
\d
\\d
1条答案
按热度按时间elcex8rz1#
JS可以像你想的那样处理字符串正则表达式,但是你只需要用一个
RexExp
对象来解析这个字符串。请记住,当使用字符串正则表达式时,您不需要在开头和结尾使用
/
斜杠,并且任何\
斜杠(如使用\d
的地方)必须通过添加另一个斜杠进行转义,以便在正则表达式字符串中看起来像\\d
。