Commit a962c89f by Kim Eunchul

#39714 andやor検索(ウェブ版error処理)

parent bbe66d21
......@@ -1042,6 +1042,90 @@ CONTENTSEARCH.searchEventButtonFunction = function() {
return;
}
try{
//seperate string
var myRegexp = /[^\s"]+|"([^"]*)"/gi;
var myArray = [];
var myQuery;
var myRegExpArr = [];
do {
var match = myRegexp.exec($('#txtSearchWs').val());
if (match != null)
{
myArray.push(match[1] ? match[1] : match[0]);
}
} while (match != null);
if(myArray[0].charAt(0) == "("){
if(myArray[0] == "("){
myRegExpArr[1] = new RegExp(myArray[1]);
myQuery = '( true';
}else{
myRegExpArr[0] = new RegExp(myArray[0].slice(1));
myQuery = '( true'
}
}else{
myRegExpArr[0] = new RegExp(myArray[0]);
myQuery = 'true';
}
for (var i = 1; i < myArray.length; i++){
if(myArray[i] == "OR" || myArray[i] == "or"){
myRegExpArr[i] = new RegExp(myArray[i]);
}else if(myArray[i].charAt(0) == "(" || myArray[i] == "("){
if(myArray[i] == "("){
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myQuery += ' || (';
}else{
myQuery += ' && (';
}
}else{
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myRegExpArr[i] = new RegExp(myArray[i].slice(1));
myQuery += ' || ( true';
}else{
myRegExpArr[i] = new RegExp(myArray[i].slice(1));
myQuery += ' && ( true';
}
}
}else if(myArray[i].charAt(myArray[i].length - 1) == ")" || myArray[i] == ")"){
if(myArray[i] == ")"){
myQuery += ' )';
}else{
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myRegExpArr[i] = new RegExp(myArray[i].slice(-1));
myQuery += ' || true )';
}else{
myRegExpArr[i] = new RegExp(myArray[i].slice(0, -1));
myQuery += ' && true )';
}
}
}else{
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' || true';
}else{
if(myArray[i - 1] == "("){
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' true';
}else{
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' && true';
}
}
}
}
if (eval(myQuery)) {
//is not correct query
}
}catch(error){
alert('正しくない検索です');
return;
}
if(CONTENTSEARCH.overClick()){
return;
}
......
......@@ -736,13 +736,10 @@ CONTENTVIEW.searchHandle = function() {
}
if ($('#txtSearch').val() != '') {
try{
var dataStored = CONTENTVIEW_GENERAL.arrThumbnailsLoaded;
var contentPage = CONTENTVIEW_GENERAL.dataWebContentPage.pages;
var myRegExp = new RegExp($('#txtSearch').val());
var sPageNo = [];
var lstPageNo = [];
var isExistData = false;
//seperate string
var myRegexp = /[^\s"]+|"([^"]*)"/gi;
......@@ -750,6 +747,7 @@ CONTENTVIEW.searchHandle = function() {
var myQuery;
var myRegExpArr = [];
try{
do {
var match = myRegexp.exec($('#txtSearch').val());
if (match != null)
......@@ -807,8 +805,13 @@ CONTENTVIEW.searchHandle = function() {
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' || myRegExpArr[' + i + '].test(contentPage[nIndex].pageText)';
}else{
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' && myRegExpArr[' + i + '].test(contentPage[nIndex].pageText)';
if(myArray[i - 1] == "("){
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' myRegExpArr[' + i + '].test(contentPage[nIndex].pageText)';
}else{
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' && myRegExpArr[' + i + '].test(contentPage[nIndex].pageText)';
}
}
}
}
......@@ -820,10 +823,10 @@ CONTENTVIEW.searchHandle = function() {
}
}
}catch(error){
alert('正しくない検索です');
return;
}
// }catch(error){
// alert('正しくない検索です');
// return;
// }
if (sPageNo.length > 0) {
//title start
......
......@@ -270,6 +270,90 @@ HEADER.searchHeaderButtonFunction = function(){
return;
}
try{
//seperate string
var myRegexp = /[^\s"]+|"([^"]*)"/gi;
var myArray = [];
var myQuery;
var myRegExpArr = [];
do {
var match = myRegexp.exec($('#searchbox-key').val());
if (match != null)
{
myArray.push(match[1] ? match[1] : match[0]);
}
} while (match != null);
if(myArray[0].charAt(0) == "("){
if(myArray[0] == "("){
myRegExpArr[1] = new RegExp(myArray[1]);
myQuery = '( true';
}else{
myRegExpArr[0] = new RegExp(myArray[0].slice(1));
myQuery = '( true'
}
}else{
myRegExpArr[0] = new RegExp(myArray[0]);
myQuery = 'true';
}
for (var i = 1; i < myArray.length; i++){
if(myArray[i] == "OR" || myArray[i] == "or"){
myRegExpArr[i] = new RegExp(myArray[i]);
}else if(myArray[i].charAt(0) == "(" || myArray[i] == "("){
if(myArray[i] == "("){
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myQuery += ' || (';
}else{
myQuery += ' && (';
}
}else{
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myRegExpArr[i] = new RegExp(myArray[i].slice(1));
myQuery += ' || ( true';
}else{
myRegExpArr[i] = new RegExp(myArray[i].slice(1));
myQuery += ' && ( true';
}
}
}else if(myArray[i].charAt(myArray[i].length - 1) == ")" || myArray[i] == ")"){
if(myArray[i] == ")"){
myQuery += ' )';
}else{
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myRegExpArr[i] = new RegExp(myArray[i].slice(-1));
myQuery += ' || true )';
}else{
myRegExpArr[i] = new RegExp(myArray[i].slice(0, -1));
myQuery += ' && true )';
}
}
}else{
if(myArray[i - 1] == "OR" || myArray[i - 1] == "or"){
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' || true';
}else{
if(myArray[i - 1] == "("){
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' true';
}else{
myRegExpArr[i] = new RegExp(myArray[i]);
myQuery += ' && true';
}
}
}
}
if (eval(myQuery)) {
//is not correct query
}
}catch(error){
alert('正しくない検索です');
return;
}
if(HEADER.overClick()){
return;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment