![](/img/trans.png)
[英]How to get the complete phone number with the dial code using intl-tel-input plugin?
[英]Regex for adding a dial code to a phone number
嘿,我是正则表达式的初学者,我无法弄清楚这一点。 什么是将拨号代码(420)添加到电话号码(此处为“tel”state变量)的正则表达式如果缺少/添加加号如果缺少/如果已经有12个号码,则将前三个变成拨号代码。 以下是所需的输出:
123456789 --> +420 123 456 789
(+420) 12 34567 89 --> +420 123 456 789
+420-123456789 --> +420 123 456 789
+987123456789 --> +987 123 456 789
420123456789 --> +420 123 456 789
import React, { useContext, useState, useEffect } from "react";
import DataContext from "../store/data-context";
function Form() {
const [name, setName] = useState("");
const [secName, setSecName] = useState("");
const [tel, setTel] = useState("");
const [note, setNote] = useState("");
const [state, setState] = useState({
name: "",
secName: "",
tel: "",
note: "",
});
const { dispatchDataState } = useContext(DataContext);
const handleSubmit = (e) => {
e.preventDefault();
console.log(name);
const payload={...state, tel: state.tel.replace(/[^+\d]+/g, "").split('').reverse().join('').replace(/([0-9]{3})/g, "$1 ").split('').reverse().join('')}
console.log(state)
console.log(tel)
dispatchDataState({ type: "ADD_DATA", payload:payload});
setState(
{
name: "",
secName: "",
tel: "",
note: "",
}
)
console.log(state);
};
return (
<div>
<form onSubmit={handleSubmit}>
<label>
Jméno
<input
type="text"
required
value={state.name}
onChange={(e) => setState({ ... state, name: e.target.value })}
/>
</label>
<label>
Příjmení
<input
type="text"
required
value={state.secName}
onChange={(e) => setState({ ... state, secName: e.target.value })}
/>
</label>
<label>
Telefonní číslo
<input
type="text"
required
value={state.tel}
onChange={(e) => setState({ ... state, tel: e.target.value })}
/>
</label>
<label>
Poznámka
<input
type="text"
value={state.note}
onChange={(e) => setState({ ... state, note: e.target.value })}
/>
</label>
<input type="submit" value="Odeslat" />
</form>
</div>
);
}
export default Form;
您可以使用intl-tel-input package 来实现此功能,而不是自己实现逻辑。
这是一个流行的零依赖 package 具有:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.