フロントエンド要素の入力ボックス - いくつかの制限を入力します (正の整数と 0 のみを入力できる、または数字のみを入力できて中国語の文字は入力できません)

1. 入力ボックスには正の整数と 0 のみを入力できます。
      <el-form-item label="设备数量" >
                <el-input
                  v-model="value"
                  onkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))"
                  placeholder="请输入设备数量"
                />
              </el-form-item>

次に、οnkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))" を使用します。

2. 正の数と負の数 0 の場合は、小数を含めることができます。
        <el-input
                  v-model="value"
                  onkeyup="value=value.replace(/[^\-?\d.]/g,'')"
                  placeholder="请输入"
                />

次に、これを使用します οnkeyup="value=value.replace(/[^\-?\d.]/g,'')"。漢字や文字は入力できません

3. 中国語は入力できませんが、正の数、負の数、小数および文字は入力できます。
      <el-input
                        v-model="value"
                        placeholder="请输入"
                        onkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')"
                      />

 οnkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')"

4. 緯度経度の制限

ウェブセクション

  <el-col :span="12">
                    <el-form-item label="经度" prop="longitude">
                      <el-input
                        v-model="form.longitude"
                        placeholder="请输入经度"
                      />
                    </el-form-item>
                  </el-col>
                  <el-col :span="12">
                    <el-form-item label="纬度" prop="latitude">
                      <el-input
                        v-model="form.latitude"
                        placeholder="请输入纬度"
                      />
                    </el-form-item>
                  </el-col>

ルール部分

longitude: [{ validator: checkLong, trigger: "change" }],
        latitude: [{ validator: checkLat, trigger: "change" }],

検証部分

 data() {
    //经度
    var checkLong = (rule, value, callback) => {
      // const longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
      const longrg =
        /^[-+]?(((0|1?[0-7]?[0-9]?)|([1-9]?[0-9]?))(([.][0-9]{1,15})?)|180(([.][0]{1,15})?))$/;
      if (value && !longrg.test(value)) {
        callback(new Error("经度整数部分为0-180,小数部分为0到15位!"));
      }
      callback();
    };
    //纬度
    var checkLat = (rule, value, callback) => {
      // const latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
      const latreg = /^[-+]?([1-8]?\d(\.\d{1,15})?|90(\.0{1,15})?)$/;
      if (value && !latreg.test(value)) {
        callback(new Error("纬度整数部分为0-90,小数部分为0到15位!"));
      }
      callback();
    };
    return {}
5. 0 より大きい数字には、漢字と文字は使用できません。

/^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/

 rules:{   adjustingValveOpening: [
          {
            validator: (rule, value, callback) => {
              if (/^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/.test(value)) {
                callback();
              }else if (value == null || value == "") {
                callback();
              }  else {
                callback(new Error("请输入正数"));
              }
            },
            trigger: "blur",
          },
        ],
}  

これは私にとって必須ではありません。途中に判断を追加するには空にすることができます。

おすすめ

転載: blog.csdn.net/weixin_47194802/article/details/130880391