我使用JavaScript而且我对正则表达式有疑问。我还没有找到我在这里问的确切内容。
我有一个超长正则表达式,我想将它拆分成一堆更小的字符串,以明确正则表达式验证的内容。
我知道可以通过做类似的事情将长正则表达式拆分为较小的正则表达式(这种方法实际上有效)
$(document).ready( function() {
// functions and stuff that alter form fields
// such as passing a parameter to a hidden field
});
但我想省略const patternOne = /(\w+:{0,1}\w*@)?/;
const patternTwo = /([a-zA-Z0-9.-]+)/;
const pattern = new RegExp(`^${patternOne.source}${patternTwo.source}$`, 'i');
并做一些更简单的事情,比如
.source
只使用字符串
但是当我这样做const patternOne = '(\w+:{0,1}\w*@)?';
const patternTwo = '([a-zA-Z0-9.-]+)';
const pattern = new RegExp(`/^${patternOne}${patternTwo}$/`, 'i');
时,我得到一个错误,表明正则表达式无效。
也许我忘了逃避我的一个角色?或者不可能只使用字符串?
答案 0 :(得分:0)
您最接近的代码解决方案是:
const patternOne = String.raw`(\w+:{0,1}\w*@)?`;
const patternTwo = String.raw`([a-zA-Z0-9.-]+)`;
const pattern = new RegExp(`^${patternOne}${patternTwo}$`, 'i');