RegExp lastIndex remains after been assigned a value explictly
by noahua
JavaScript
var reLine = /\r?\n/g
function C(str) {
this.content = str;
console.log('----------------')
console.log('reLine lastIndex:' + reLine.lastIndex)
}
C.prototype = {
getLine: function(){
return getLineNo(this.content, 15)
}
}
var str1 = 'asdfasd \n \n \nsadfasdfa\n asdfasdf\n'
var c1 = new C(str1)
console.log(c1.getLine())
var c2 = new C(str1)
function getLineNo(str, end) {
var br
var lineNo = 0
var lastLineEnd = reLine.lastIndex
while(br = reLine.exec(str)) {
if (br.index < end) {
lineNo++
}else {
reLine.lastIndex = 10
break
}
}
return lineNo
}