Я дам вам без регулярных выражений ответа, так как с помощью регулярных выражений не всегда уместен, будь то скорость или readibility самого регулярного выражения:
function getText(text) {
var arr = text.split("#@#"); // arr now contains [1618148163,JASSER-PC#-#1125015374,anas kayyat#-#1543243035,anas kayyat#-#]
var newarr = [];
for(var i = 0; i < arr.length; i++) {
var index = arr[i].indexOf("#-#");
if(index != -1) { // if an array element doesn't contain "#-#", we ignore it
newarr.push(arr[i].substring(0, index));
}
}
return newarr;
}
Теперь, используя
getText("1618148163#@#JASSER-PC#-#1125015374#@#anas kayyat#-#1543243035#@#anas kayyat#-#");
возвращает то, что вы хотели.
Осмотрите утверждения '(? <...)' и положительный look-ahead '(? = ...)' не поддерживаются в регулярных выражениях Javascript. –
@Linus: половина права - вперед-вперед поддерживается, смотреть-сзади нет. –
@Linus Kleen: Поддерживаются утверждения с подтверждением ожидания. – Gumbo