我需要從JavaScript代碼中查找和替換變量。JavaScript RegExp沒有給出預期的結果
可以說,我需要尋找「長」在給定的代碼,我要排除「x.length」或「線路長度」
樣品輸入 - 使它更容易調試
var sampleStringWhichWorks = 'function checkLength(l, ls){\n' +
'var line, lines, len, length01, linelength11;\n' +
'line = l;\n' +
'lines = ls;\n' +
'len = line.length12;\n' +
'length02 = lines.length13;\n' +
'if(len==length03){\n' +
'len--;\n' +
'length04= length05 + 1;\n' +
'}\n' +
'linelength14 = len + length06;\n' +
'return linelength15;\n' +
'}\n';
這個/([^az.])length[d]{2}([^az])/mig表達式解決了這個問題,但對於像「length04 = length05 + 1」這樣的行,它只捕獲第一個長度,忽略第二個長度。
它適用於「length04 = length05 + 1」並捕獲兩個實例。
我已經添加[\ d] {2}只是爲了更好地理解,這裏預期的成果是捕獲所有的「長度」以0結束,而忽略與1
結束我試過,如指定其他選項,如[^ az] {0,1},但沒有解決問題。
檢查jsFiddle here。
實際輸入和正則表達式(/([^az.])length([^az])/mig)從此
- 變種線
function checkLength(l, ls){ var line, lines, len, length, lineLength; line = l; lines = ls; len = line.length; length = lines.length; if(len == length){ len--; length=length+1; } lineLength = len + length; return lineLength; }
預期結果,線條,LEN ,長度,lineLength;
- 長度 = lines.length;
- 如果(LEN == 長度){
- 長度 = 長度 + 1;
- lineLength = len + length;
您還可以使用http://www.cyber-reality.com/regexy.html快速測試正則表達式 –
我要告訴你,我不讀這不是因爲我不不想幫忙,但因爲有三十行中有十種不同的文字樣式。讓我頭疼,對不起。 – Ben
@Steve - 採取,編輯 –