鍍金池/ 問答/HTML/ 關于正則的問題

關于正則的問題

用戶昵稱規(guī)定只能是“數字、大小寫字母”組成,而且不能少于2位,也不能超過20位,
let reg=/^[a-zA-Z\d]{2,20}$/,請問數字和字母是并列關系怎么寫?都需要出現

回答
編輯回答
櫻花霓

/^[a-zA-Z0-9]{2,20}$/

2017年10月10日 16:10
編輯回答
艷骨

^\d|\w{2,20}

2018年5月16日 23:52
編輯回答
冷咖啡

我一般寫并列就用或表示()中寫,這樣既可以選中數字,又可以選中字母。

2018年5月30日 16:15
編輯回答
傲嬌范

要同時出現的話,一個正則似乎不好實現,可如果反向思考呢

let name = '-9';

const isError = name.length < 2 || name.length > 20 || /[^a-zA-Z0-9]/.test(name);
const isSuccess = !isError;

console.log(isSuccess); // false

只要字數不達標,或者出現非數字和字母,都算不符合要求

2017年12月11日 18:42
編輯回答
放開她
let reg = /^([a-zA-Z]\d)|(\d[a-zA-Z])[a-zA-Z\d]{0,18}$/;

or

let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{2,20}$/;
2017年2月21日 09:43
編輯回答
臭榴蓮
/^(?=.*?\d)(?=.*?[a-z])[a-z\d]{2,20}$/i
2017年4月17日 20:10
編輯回答
凝雅
let reg=/^[a-zA-Z0-9]{2,20}$/
2018年6月9日 09:47