Javascript从子字符串regex中提取

Javascript Extract from substring regex

本文关键字:提取 regex 字符串 Javascript      更新时间:2023-09-26

我对Regex没有任何经验。如何从下面这样的字符串中提取FieldInternalName的值?只需要不带引号的值。

var idString = '<!--  FieldName="App" FieldInternalName="Application" FieldType="SPFieldLookup" -->';

这样的东西对你有用吗?

var idString = '<!--  FieldName="App" FieldInternalName="Application" FieldType="SPFieldLookup" -->';
var fieldInternalName = idString.match(/FieldInternalName="(.*?)"/i)[1];
alert(fieldInternalName);

很容易设置一个简单的表达式来"捕获"FieldInternalName:的内容

<!--.*?'bFieldInternalName="([^"]+)".*?-->

演示


这个表达式通过查找来工作:

  • <!--
  • 0+个字符(.*?
  • FieldInternalName="(前面有一个单词边界'b,这样就不会匹配类似FakeFieldInternalName="的内容)
  • 1+非"字符([^"]+
  • "
  • 0+个字符(.*?
  • -->

使用RegExp.prototype.exec(),我们可以提取该匹配的内容:

var idRegex = /<!--.*?'bFieldInternalName="([^"]+)".*?-->/,
    idString = '<!--  FieldName="App" FieldInternalName="Application" FieldType="SPFieldLookup" -->';
var matches = idRegex.exec(idString);
console.log(matches[1]);
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>