删除 JavaScript 中字符串的所有特定部分
remove all but a specific portion of a string in javascript
我正在为Sharepoint编写一个小应用程序。我正在尝试从返回的字段中间提取一些文本:
var ows_MetaInfo="1;#Subject:SW|NameOfADocument
vti_parservers:SR|23.0.0.6421
ContentTypeID:SW|0x0101001DB26Cf25E4F31488B7333256A77D2CA
vti_cachedtitle:SR|NameOfADocument
vti_title:SR|ATitleOfADocument
_Author:SW:|TheNameOfOurCompany
_Category:SW|
ContentType:SW|Document
vti_author::SR|mrwienerdog
_Comments:SW|This is very much the string I need extracted
vti_categories:VW|
vtiapprovallevel:SR|
vti_modifiedby:SR|mrwienerdog
vti_assignedto:SR|
Keywords:SW|Project Name
ContentType _Comments"
所以。。。。。。我想要返回的只是"这是我需要提取的字符串">
我需要正则表达式和字符串替换吗?你会如何编写正则表达式?
是的,你可以为此使用正则表达式(这是他们擅长的事情(。 假设您始终希望以"_Comments:SW|"开头的行上的管道 (|( 后面的字符串,以下是提取它的方法:
var matchresult = ows_MetaInfo.match(/^_Comments:SW'|(.*)$/m);
var comment = (matchresult==null) ? "" : matchresult[1];
请注意,字符串对象的 .match(( 方法返回一个数组。 第一个(索引 0(元素将是整个匹配项(在这里,我们整个匹配项是整行,因为我们用 ^ 和 $ 锚定了它;请注意,在正则表达式后添加"m"使其成为多行正则表达式,允许我们匹配多行输入中任何行的开头和结尾(,数组的其余部分是我们使用括号捕获的子匹配项。 上面我们捕获了您想要的行部分,因此它将出现在数组的第二项(索引 1(中。
如果没有匹配项("_Comments:SW|"没有出现在ows_MetaInfo中(,那么 .match(( 将返回 null,这就是我们在拉出注释之前对其进行测试的原因。
如果您需要针对其他场景调整正则表达式,请查看 Mozilla Dev 网络上的正则表达式文档:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
您可以使用以下代码:
var match = ows_MetaInfo.match(/_Comments:SW'|([^'n]+)/);
if (match)
document.writeln(match[1]);
我远不能胜任正则表达式,所以这是我的无正则表达式解决方案。有关更多详细信息,请参阅注释。
var extractedText = ExtractText(ows_MetaInfo);
function ExtractText(arg) {
// Use the pipe delimiter to turn the string into an array
var aryValues = ows_MetaInfo.split("|");
// Find the portion of the array that contains "vti_categories:VW"
for (var i = 0; i < aryValues.length; i++) {
if (aryValues[i].search("vti_categories:VW") != -1)
return aryValues[i].replace("vti_categories:VW", "");
}
return null;
}
这里有一个工作小提琴要演示。
相关文章:
- 注册OpenLayers事件时,即使使用匿名函数或绑定,JavaScript关闭也会触发循环内的所有内容
- 将web服务回调的结果绑定到Javascript中的调用函数
- 异步加载ASP.NET绑定的Javascript,然后调用回调
- 绑定的Javascript问题
- ASP.Net MVC模型绑定到javascript
- 如何绕过绑定的Javascript OnChange Functions
- 将值绑定到 JavaScript 中的现有函数中
- 让 CPU 绑定的 JavaScript 感觉响应迅速---webworkers
- Web 文本编辑器 - 将单选按钮绑定到 javascript 函数
- 将函数绑定到 JavaScript 继承层次结构中的原型
- 传递 Angular.js绑定到 javascript 函数
- 相当于后期静态绑定的JavaScript
- 使用带有挖空安全绑定的 javascript 三元运算符时出错
- 将模型对象绑定到JavaScript数组时出现语法错误
- Processing.js没有'不允许在firefox中绑定外部javascript
- 如何将变量值后面的代码绑定到javascript
- 是否有一种方法可以将事件绑定到javascript中的常规对象
- 将鼠标事件绑定到javascript对象
- 在XHR响应之后,如何使用jQuery重新绑定这个Javascript事件?
- KnockoutJS数据绑定:从javascript点击中点击