程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 Javascript RegExp 构造函数中使用正则表达式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 Javascript RegExp 构造函数中使用正则表达式?

开发过程中遇到在 Javascript RegExp 构造函数中使用正则表达式的问题如何解决?下面主要结合日常开发的经验,给出你关于在 Javascript RegExp 构造函数中使用正则表达式的解决方法建议,希望对你解决在 Javascript RegExp 构造函数中使用正则表达式有所启发或帮助;

我有一个这样的正则表达式,使用 https://regexr.com/

可以正常工作

([a-zA-Z0-9-.~%!$&'()*+,;=@]+(/[a-zA-Z0-9-.~ %!$&'()+,;=:@]+)/?|(/[a-zA-Z0-9-.~%!$&'()* +,;=:@]+)+/?)(?[a-zA-Z0-9-.~%!$&'()+,;=:@/?])?(#[a-zA-Z0-9-._~%!$&'()+,;=:@/?])?

我想将它与下面的 RegExp() 一起使用(我只是将上面的字符串放在原始字符串中),但它不起作用。我需要做任何其他治疗吗?

const pattern =String.raw`([a-zA-Z0-9\-._~%!$&'()*+,;=@]+(\/[a-zA-Z0-9\-._~%!$&'()*+,;=:@]+)*\/?|(\/[a-zA-Z0-9\-._~%!$&'()*+,;=:@]+)+\/?)(\?[a-zA-Z0-9\-._~%!$&'()*+,;=:@/?]*)?(\#[a-zA-Z0-9\-._~%!$&'()*+,;=:@/?]*)?`;
let re = new RegExp(pattern);
return re.test(someString)

我也尝试将正则表达式用 / 和 / 括起来,如下所示,但它也不起作用。它允许空格,但我真的不允许空格。

const re = new RegExp(/([a-zA-Z0-9\-._~%!$&'()*+,;=:@/?]*)?/);

更新: 我想我的问题应该是如何确保它与全文匹配,就像我在上面的网站中可以做的测试一样(附在下面的截图)

@H_874_31@

解决方法

我认为这个问题的根源在于 regexr 匹配整个字符串,而不仅仅是一部分。如果部分正则表达式匹配,.test() 将返回 true。如果您只想在匹配完整字符串时返回 true,我建议使用 start ^ 和 end $ 分隔符。

const pattern =String.raw`^([a-zA-Z0-9\-._~%!$&'()*+,;=@]+(\/[a-zA-Z0-9\-._~%!$&'()*+,;=:@]+)*\/?|(\/[a-zA-Z0-9\-._~%!$&'()*+,;=:@]+)+\/?)(\?[a-zA-Z0-9\-._~%!$&'()*+,;=:@/?]*)?(\#[a-zA-Z0-9\-._~%!$&'()*+,;=:@/?]*)?$`;
let re = new RegExp(pattern);
console.log(re.test('asdf```'))

,

匹配字符串的开头 4,5A 和结尾 ^ 以获得精确匹配,否则将接受子字符串。

$

在示例字符串上:

const re = new RegExp('^regex$')

大佬总结

以上是大佬教程为你收集整理的在 Javascript RegExp 构造函数中使用正则表达式全部内容,希望文章能够帮你解决在 Javascript RegExp 构造函数中使用正则表达式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。