从Node.JS中的Javascript正则表达式中获取NULL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从Node.JS中的Javascript正则表达式中获取NULL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1393字,纯文字阅读大概需要2分钟。
内容图文
![从Node.JS中的Javascript正则表达式中获取NULL](/upload/InfoBanner/zyjiaocheng/726/fbcaa6a5902a4598b804cbb40df76d7d.jpg)
以下代码是Node.js应用程序的一部分.我试图使用正则表达式来获取url部分,但很难.当它传递一个明显匹配的’req.url’字符串,即使regex.test(req.url)返回true,我也会从regex.match返回null.为什么这样?当我使用regex.match()而不使用前面的regex.test()时,我得到正则表达式结果数组OK …但我需要在实际应用程序中执行regex.test().在regex.test()之后立即使用regex.match()是否可行/合法?
例如,当req.url =“/?format = html& path = / news / crawl / 15/10/01 / http—newssite.com–crawl.html”时,我从regex.match得到一个null.实际上,没有字符串与以下代码匹配:
http.createServer(function (req, res) {
if (req.method == 'GET') {
var readRegex = /\?format=(json|html|txt)&path=([\w.\/_-]+)/g;
var file_path, regex_results;
console.log(req.url);
switch (true) {
case readRegex.test(req.url):
regex_results = readRegex.exec(req.url);
if (regex_results !== null) {
console.log(regex_results);
} else {
console.log("Error: 'regex_results' is null!");
}
break;
}
} else {
res.writeHead(503, {'Content-Type': 'application/json'});
res.end("{'error':'Method not yet implemented!'}");
}
}).listen(22000, '127.0.0.1');
解决方法:
调用regexp.test()后regexp.exec()失败的原因是因为regexp.test()将regexp.lastIndex设置为字符串的末尾,这是最后一个匹配结束的位置.
因此,当regexp.exec()执行时,它会尝试从regexp.lastIndex(字符串的结尾)开始,它从不匹配任何东西,因为它是相同的字符串.
您可以在regexp.test()之后通过regexp.lastIndex = 0;手动重置此属性.
内容总结
以上是互联网集市为您收集整理的从Node.JS中的Javascript正则表达式中获取NULL全部内容,希望文章能够帮你解决从Node.JS中的Javascript正则表达式中获取NULL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。