我需要一個正則運算式來檢查是否有兩個以上的字母。
它應該只允許一個字母。
但允許數字。
例如
- 1a不錯
- 1ab不好
- 11不錯
- 11ab不好
我有一個,當有任何數字時它也被認為是錯誤的......我確實想允許數字。不超過一個字母。
這是我的正則運算式:
export const onlyOneCharacter = (string) => {
return /^[A-Za-z]{0,1}$/.test(string) ? undefined : "wrong";
};
回傳 undefined 意味著它是正確的,所以它不會顯示任何驗證錯誤。
uj5u.com熱心網友回復:
如果字串中不能有兩個連續的字母,則可以使用
const texts = ["1a", "1ab", "11", "11ab"];
const onlyOneCharacter = (string) => {
return /[A-Za-z]{2}/.test(string) ? "wrong" : "correct";
};
console.log( texts.map(onlyOneCharacter) )
如果您需要檢查兩個不一定連續的字母,您可以使用
const texts = ["1a", "1ab", "11", "11ab"];
const onlyOneCharacter = (string) => {
return /[A-Za-z][^A-Za-z]*[A-Za-z]/.test(string) ? "wrong" : "correct";
};
console.log( texts.map(onlyOneCharacter) )
請注意,[A-Za-z][^A-Za-z]*[A-Za-z]正則運算式搜索一個字母,然后是零個或多個非字母字符,然后是字串中任意位置的一個字母。
如果模式匹配,則結果為wrong,否則回傳值為correct。
uj5u.com熱心網友回復:
我會用
^\d*[a-z]?\d*$
查看正則運算式演示
JavaScript 示例
const onlyOneCharacter = (string) => {
return /^\d*[a-z]?\d*$/.test(string) ? undefined : "wrong";
};
console.log(onlyOneCharacter("1a"));
console.log(onlyOneCharacter("1ab"));
console.log(onlyOneCharacter("11"));
console.log(onlyOneCharacter("11ab"));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491481.html
標籤:正则表达式
上一篇:正則運算式提取編號
下一篇:提取第一個下劃線后的所有數字值
