使用lodash链的字符串操作
String manipulation using lodash chaining
我想改变字符串"Showing 8,868 research papers in XXX Journal; published between 2000-01-01 and 2015-06-31"
:New research papers in XXX Journal; published from 2001-01-01 onward
var desc = _.chain($('.description').text())
.thru(function (text) { return text.replace(/'s+/g, ' ') })
.thru(function (text) { return text.replace(/Showing's['d+',*]+/, 'New') })
.split(';')
.map(function (phrase) {return phrase.replace('between', 'from').replace(/and's['d+-.]+/, 'onward') })
.join(';')
.value()
但我总是接通Uncaught TypeError: undefined is not a function
.thru(function (text) { return text.replace(/'s+/g, ' ') })
我做错了什么?
可能您使用的是过时的lodash版本,因为您的代码使用lodash 3.9.3。注意,_.thru
在lodash 2中没有实现。*
与TypeError
无关,您可以使用method()和flow()来使您的代码更小:
function replace(a, b) { return _.method('replace', a, b); }
_($('.description').text())
.chain()
.thru(replace(/'s+/g, ' '))
.thru(replace(/Showing's['d+',*]+/, 'New'))
.split(';')
.map(_.flow(replace('between', 'from'), replace(/and's['d+-.]+/, 'onward')))
.join(';')
.value()
相关文章:
- 如何在javascript中进行字符串操作
- 使用 JavaScript 字符串操作来剪切精确的文本
- Parse的javascript CloudCode对httprequest的字符串操作添加了额外的反斜杠
- 带括号的简单字符串操作
- Javascript和PHP中的字符串操作/编辑
- 使用 Javascript (NodeJS) 进行字符串操作
- 字符串数组的字符串操作
- Javascript 字符串操作
- 如何使用正则表达式进行一些 Javascript 字符串操作
- C:字符串操作和Arduino
- Javascript字符串操作,将数字与字符串相结合
- Javascript字符串操作和innerHtml
- 字符串操作和聚合
- 使用正则表达式进行Javascript字符串操作
- 复杂的字符串操作
- JavaScript和字符串操作中的单选框
- Javascript字符串操作url
- JSON字符串操作
- 奇怪的Javascript字符串操作行为
- javascript中的字符串操作