Javascript 正则表达式空白检测

标签 javascript jquery regex whitespace

我提交了这个Extract String RegEx Question不久前发布的。
我想进一步增强表达模式。

到目前为止,效果很好:

<script> 
  // extract the inc/funcs.asp from the variable.
  var text = '<!-- #include file="inc/funcs.asp" -->'; 
  var pattern = /file="([^"]+)/i
  var result = (text.match(pattern) || ['', ''])[1]; 
  console.log(result); // returns: inc/funcs.asp
</script>

我现在正在测试空白的细微差别。 我应用的模式是:/file="([^"]+)/i 我想为这个模式添加更多内容。

例如:

var pattern = /#include file="([^"]+)/i

除非#include文件之间有更多空间,否则这种方法是有效的。

所以我将模式更改为:

var pattern = /#include(\s+)file="([^"]+)/i

完整脚本:

<script>
  var text = '<!-- #Include      File="inc/funcs.asp" -->'; 
  var pattern = /#include(\s+)file="([^"]+)/i 
  var result = (text.match(pattern) || ['', ''])[1]; 
  var count = result.length; 

  if(count > 0){ 
    console.log(result); 
  }
</script>

count 变量大于 0,并运行 console.log。 但变量 result 为空。

我缺少什么?

最佳答案

正则表达式中删除\s+的捕获组 - ()。否则,它总是在 result 数组中返回空格。

var pattern = /#include\s+file="([^"]+)/i;

Demo

var text = '<!-- #Include      File="inc/funcs.asp" -->';
var pattern = /#include\s+file="([^"]+)/i;
var result = (text.match(pattern) || ['', ''])[1];

if (result.length > 0) {
  alert(result);
}

关于Javascript 正则表达式空白检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559122/

相关文章:

javascript - jQuery表单插件和PHP文件上传教程问题

javascript - Angular js : Filter an array with $filter

javascript - 使用 jquery tablesorter 插件保留斑马条纹

jquery - Bootstrap 阻止 jQuery 更改复选框的状态

Javascript/Jquery boolean 帮助 : Hiding/Showing Divs

regex - 使用正则表达式过滤的 JsonPath 表达式

JavaScript 音频无法在 jQuery 函数之外播放

javascript - 使用jquery加载图像信息

javascript - 否定正则表达式模式的问题

regex - 如何根据给定的字母数显示单词?