全半角チェックのバグ修正の為のコード再構築

This commit is contained in:
kanarutsuda
2024-07-17 14:00:18 +09:00
parent 79a8598468
commit fde66aa480
2 changed files with 10 additions and 8 deletions

View File

@@ -1,12 +1,10 @@
import { actionAddins } from "."; import { actionAddins } from ".";
import { IAction,IActionResult, IActionNode, IActionProperty, IField, IContext } from "../types/ActionTypes"; import { IAction,IActionResult, IActionNode, IActionProperty, IField, IContext } from "../types/ActionTypes";
//クラス名を設計書に揃える
/** /**
* アクションの属性定義 * アクションの属性定義
*/ */
interface FullWidthProps{ interface FullWidthProps{
//checkOption:Array<string>,
field:IField field:IField
} }
/** /**
@@ -20,7 +18,6 @@ export class FullWidthAction implements IAction{
this.name="全角チェック"; /* pgadminのnameと同様 */ this.name="全角チェック"; /* pgadminのnameと同様 */
this.actionProps=[]; this.actionProps=[];
this.props={ this.props={
//checkOption:[],
field:{code:''} field:{code:''}
} }
//アクションを登録する //アクションを登録する
@@ -50,15 +47,17 @@ export class FullWidthAction implements IAction{
//条件分岐 //条件分岐
//未入力時は何も処理をせず終了 //未入力時は何も処理をせず終了
if(value===undefined || value===''){ if(value===undefined || value===''){
return result; record[this.props.field.code].error=null;
} }
//半角が含まれていた場合resultがfalse //半角が含まれていた場合resultがfalse
if(!this.containsFullWidthChars(value)){ if(!this.containsFullWidthChars(value) && !(value === undefined || value ==='')){
//エラー時に出力される文字設定 //エラー時に出力される文字設定
record[this.props.field.code].error="半角が含まれています"; record[this.props.field.code].error="半角が含まれています";
//次の処理を中止する値設定 //次の処理を中止する値設定
result.canNext=false; result.canNext=false;
return result; }
else{
record[this.props.field.code].error=null;
} }
//resultプロパティ指定 //resultプロパティ指定
result= { result= {
@@ -79,6 +78,7 @@ export class FullWidthAction implements IAction{
containsFullWidthChars(text: string): boolean { containsFullWidthChars(text: string): boolean {
// 半角英数字カナ記号を除外 // 半角英数字カナ記号を除外
//全角かどうか
const checkRegex="^[^\x01-\x7E\uFF61-\uFF9F]+$"; const checkRegex="^[^\x01-\x7E\uFF61-\uFF9F]+$";
//正規表現オブジェクト生成 //正規表現オブジェクト生成

View File

@@ -47,7 +47,7 @@ export class HalfWidthAction implements IAction{
//条件分岐 //条件分岐
//未入力時は何も処理をせず終了 //未入力時は何も処理をせず終了
if(value===undefined || value===''){ if(value===undefined || value===''){
return result; record[this.props.field.code].error=null;
} }
//全角が含まれていた場合保存処理中止(エラー処理) //全角が含まれていた場合保存処理中止(エラー処理)
if(!this.containsHalfWidthChars(value)){ if(!this.containsHalfWidthChars(value)){
@@ -55,7 +55,9 @@ export class HalfWidthAction implements IAction{
record[this.props.field.code].error="全角が含まれています"; record[this.props.field.code].error="全角が含まれています";
//次の処理を中止する値設定 //次の処理を中止する値設定
result.canNext=false; result.canNext=false;
return result; }
else{
record[this.props.field.code].error=null;
} }
//半角の場合問題なく実行 //半角の場合問題なく実行
//resultプロパティ指定 //resultプロパティ指定