Добавьте конец строки $
в качестве одного из суффиксов имени типа к своему регулярному выражению:
DECLARE
lvc_direccion varchar2(200) := 'BL 93 IN 4 AP 401 PABLO VI II SEC';
lvc_Inmueble varchar2(2000);
p_prefixes VARCHAR2(500) := 'CONJ|ADL|ALD|ALM|APO|ATR|CAS|CEN|CLJ|CON|ESQ|FCA|TER|URB|VRD|AG|CA|CC|CD|ED|EX|HC|IN|OF|PJ|UN|UR|ZF|C';
p_suffixes VARCHAR2(500) := 'TERPLN|SUITE|AGP|ALM|CEL|MLL|PAR|POR|POS|PRJ|SEC|AD|AL|AP|BG|BL|CA|CS|DP|DS|ED|EN|ET|GJ|GS|GT|HG|LC|LM|LT|MD|MJ|MN|MZ|OF|PA|PD|PH|PL|PN|PQ|PS|PT|PW|RP|SA|SC|SD|SL|SS|ST|TO|TZ|ZN|P';
p_regexp VARCHAR2(1100) := '(' || p_prefixes || ').*?(' || p_suffixes || '|$)';
BEGIN
lvc_Inmueble := REGEXP_SUBSTR( lvc_direccion, p_regexp );
DBMS_OUTPUT.PUT_LINE( lvc_Inmueble );
END;
Если myObj является глобальным, он должен сослаться на объект окна, иначе он бросит ошибку если myObj
не определено.
myParam = myParam || (window.myObj ? window.myObj.mParam : 10);
или
myParam = myParam || (window.myObj && window.myObj.mParam) || 10;
Это работает также:
myParam = myParam || ((typeof myObj !== "undefined") ? myObj.mParam : 10);
Я думаю, что другие ответы доказали, что существует целый набор способов, которыми острота может перестать работать здесь. Моя версия ниже, возможно, более читаема, и явно не тестирует на существование объекта/свойства, но не намного короче:
function MyFunc(myParam){
if (!myParam){
try{
myParam = myObj.myParam;
}
catch(e){
myParam = 10;
}
}
}