/** * Created by Tony on 2017/6/21. */ /** * Created by Tony on 2017/6/21. */ var test = require('tape'); test('string test1', function(t){ let str = "at('1.1') + at('1.2') + at('1.3') + at('1.4')"; //let re = /at(/g; //let re = new RegExp("at\(", "g"); //let str1 = str.replaceAll('re', '@('); //let str1 = str.replace('at(', '@('); var str1 = str.split('at1(').join('@('); //t.equal(str1, "@('1.1') + @('1.2') + @('1.3') + @('1.4')"); t.equal(str1, "at('1.1') + at('1.2') + at('1.3') + at('1.4')"); t.end(); }) test('string test2', function(t){ var str="hello(world)"; var nstr = str.replace(/\([^\)]*\)/g,""); t.equal(nstr , "hello"); t.end(); }) test('string test3', function(t){ var str="共 (%S) 页"; var nstr = str.replace("(%S)",10); t.equal(nstr , "共 10 页"); t.end(); }) test('test extract', function(t){ let private_extract_code = function(str, idx){ let rst = '', lBracket = 0, rBracket = 0, firstIdx = idx, lastIdx = 0; for (let i = idx; i < str.length; i++) { if (str[i] === '(') { lBracket++; if (lBracket == 1) firstIdx = i + 1; } if (str[i] === ')') { rBracket++; if (lBracket == rBracket) { lastIdx = i - 1; if (lastIdx > firstIdx) { if (str[firstIdx] === "'") firstIdx++; if (str[lastIdx] !== "'") lastIdx++; if (lastIdx > firstIdx) { rst = str.slice(firstIdx, lastIdx); } } break; } } } return rst; }; let code = private_extract_code("at('1.1') + at('1.2')", 10); t.equal(code , "1.2"); t.end(); })