Javascript从子字符串正则表达式中提取

时间:2014-10-21 20:51:54

标签: javascript regex

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

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

2 个答案:

答案 0 :(得分:2)

对你来说这会是什么工作?

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

答案 1 :(得分:0)

很容易设置一个简单的表达式来捕获&#34; FieldInternalName的内容:

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

Demo


此表达式的工作原理是:

  • <!--
  • 0+个字符(.*?
  • FieldInternalName="(前面有单词边界\b,因此您不会匹配FakeFieldInternalName="
  • 之类的内容
  • 1 +非"字符([^"]+
  • "
  • 0+个字符(.*?
  • -->

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

&#13;
&#13;
var idRegex = /<!--.*?\bFieldInternalName="([^"]+)".*?-->/,
    idString = '<!--  FieldName="App" FieldInternalName="Application" FieldType="SPFieldLookup" -->';

var matches = idRegex.exec(idString);
console.log(matches[1]);
&#13;
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
&#13;
&#13;
&#13;