前提・実現したいこと
お世話になっております。
現在、javascriptにて、ActiveDirectryにcsvを使って、ユーザーを作成・変更できる機能を作成しております。
その中で、AD内からユーザー情報を取得したcsvの情報(addata)とhtml上に表示したcsvの情報(data[i][j])を突合し、AD内に存在しないユーザーは白、既存のユーザーは青と表示されるよう設定をしているのですが、この色判断機能が部分一致となってしまう不具合が生じております。
例)999が存在しているADに対して、99999を作ろうとすると、すでに存在するユーザーとして判断される。
元々の関数が、indexOfとなっていたため、こちらの関数をmatchに修正することで対応できると踏んでおりましたが、matchにしても部分一致となってしまいます。
これがコードの問題なのかどうかはっきりしたいため、ご助言などいただけますと幸いです。
また、必要なコード分などございましたら、ご連絡ください。
以上、よろしくお願い致します。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
色判断機能が部分一致となってしまう 例)999が存在しているADに対して、99999を作ろうとすると、すでに存在するユーザー(青色)として判断される。 正)99999は存在しないため、白となる
該当のソースコード
javascript
1・・・ 2 function makeTable(data, tableId) { 3 var rows = []; 4 var table = document.createElement("table"); 5 //完成したテーブルに <table id="userCsvTable">というidを付与します。 6 table.id = "userCsvTable" 7 8 //(縦方向)の要素数を取得・縦方向の繰り返し処理回数を指定 9 for (i = 0; i < data.length; i++) { 10 rows.push(table.insertRow(-1)); 11 if (i === arr.length) { 12 break 13 } 14 15 //(横方向)の要素数を取得・横方向の繰り返し処理回数を指定 これは要素数分、列を作成する処理 16 for (j = 0; j < data[0].length; j++) { 17 cell = rows[i].insertCell(-1); 18 // 追加した行にセルを追加してテキストを書き込む 19 cell.appendChild(document.createTextNode(data[i][j])); 20 if (i == 0) { 21 22 // ヘッダー行(エクセルの、1行目):<th>の部分・背景色と文字色の指定 23 cell.style.backgroundColor = "gray"; 24 cell.style.color = "white"; 25 26 //ヘッダー行:各セルのidにインデックス番号を入れる 27 //(ここでは0ゼロしか入らない・次のステップで正しい連番に置き換えます。) 28 cell.id = i 29 30 //各セルのclassを追加。ここではヘッダー行は index としています。 31 cell.classList.add("index_" + i, "cellContents", "header-cell"); 32 } 33 else { 34 //ヘッダー行以外の内容行(エクセルの、2行目以降) 35 cell.id = i 36 //各セルのclassを追加。2行目以降(ヘッダー行以外)は contents としています。 37 cell.classList.add("contents_" + i, "cellContents", "body-cell") 38 if (j % 16 == 0) { 39 if (addata.match(data[i][j]) != -1) { 40 cell.style.backgroundColor = "blue"; 41 cell.style.color = "white"; 42 } 43・・・
試したこと
if (addata.indexOf(data[i][j]) != -1)を
if (addata.match(data[i][j]))
とすることで完全一致できるかと考えていたのですが、ダメでした。。。
あと、addataの情報とdata[i][j]の情報をtrimなどをして整えてもうまくできませんでした。。。
補足情報(FW/ツールのバージョンなど)
・javascript/html/powershellISE/bat
・jquery-1.9.1.js
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/08 02:20
2021/04/08 02:24 編集
2021/04/08 02:30
2021/04/08 02:57
2021/04/08 02:59
2021/04/08 03:06
2021/04/08 03:09
2021/04/08 06:50 編集