我有输入类型数字以提供分钟数的数据。如何验证此字段以接受以下情况,
我尝试使用下面的代码,但是它接受多个点,
class SelectMedicineAdapter (val medicineList : ArrayList<String>, val context: Context) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
var selectedCheckBoxMedicineList : ArrayList<String> = ArrayList()
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
holder.itemView.textViewSelectMedicineName.text = medicineList.get(position)
holder.itemView.checkboxSelectMedicine.setOnCheckedChangeListener { buttonView, isChecked ->
val itemText = medicineList.get(position)
if (isChecked) {
selectedCheckBoxMedicineList.add(itemText)
} else {
selectedCheckBoxMedicineList.remove(itemText)
}
}
}
fun getSelectedMedicineList(): ArrayList<String> {
return selectedCheckBoxMedicineList
}
override fun getItemCount(): Int {
return medicineList.size
}
override fun onCreateViewHolder(holder: ViewGroup, p1: Int): RecyclerView.ViewHolder {
val v= (LayoutInflater.from(context).inflate(R.layout.row_select_medicine_adapter,holder,false))
return ViewHolder(v)
}
class ViewHolder (itemView: View): RecyclerView.ViewHolder(itemView){
var textViewSelectMedicineName = itemView.textViewSelectMedicineName
var imageViewPlusButton = itemView.imageViewPlusButton
var imageViewMinusButton = itemView.imageViewMinusButton
var checkboxSelectMedicine = itemView.checkboxSelectMedicine
}
}
答案 0 :(得分:1)
使用函数来测试输入值:
function isInvalidInput (val) {
return parseFloat(val) < 0.5 || isNaN(val);
}
console.log( isInvalidInput("-0.5") ); // true
console.log( isInvalidInput(-2) ); // true
console.log( isInvalidInput("1.2.5") ); // true
console.log( isInvalidInput("0.4") ); // true
console.log( isInvalidInput(0.4) ); // true
console.log( isInvalidInput("0.5") ); // false
console.log( isInvalidInput("1.2") ); // false
console.log( isInvalidInput("1000.9") ); // false
console.log( isInvalidInput(0.5) ); // false
console.log( isInvalidInput(0.999) ); // false
其中parseFloat(val) < 0.5
(如有必要,分析字符串并确保)大于0.5
-禁止使用负值,而isNaN
解析字符串并检查格式是否为{{ 1}}。
如果函数引发一个Number
标志,则输入为无效。
如果您想反转逻辑(例如:true
)而不是使用isValidInput
使用ES6 syntax:
return !( /*logic here*/ );
答案 1 :(得分:0)
您可以防止用户在按键事件中使用.
输入超过1个-
和e.preventDefault()
。
let input = document.querySelector('input');
input.addEventListener('keydown',(e) => {
if((e.key === '.' && e.target.value.includes('.')) || e.key === '-'){
e.preventDefault();
console.log("Wrong Input")
}
})
input.addEventListener('blur',(e) => {
if(parseFloat(e.target.value) < 0.5) console.log("Input less than 0.5")
})
<input id="main" type="number" min="0.5"/>
答案 2 :(得分:0)
您可以将0.5
属性值设置为RegExg
,/^\d+$|^\d+\.\d+$/
.value
,以将一个或多个数字的字符串开头与字符串的结尾或字符串开头或多个数字字符,后跟点字符,然后是一个或多个数字字符,后跟字符串的结尾,并检查min
事件处理程序上的blur
是否小于<input
type="number"
min="0.5"
onblur="if(!/^\d+$|^\d+\.\d+$/.test(this.value)||this.value<this.min)this.value=''">
属性值,
solicitudes