假设您想要一个基于正则表达式的确定大小的随机字符串。
解决问题的方法是:首先定义'所有可能的'字符的 集 ,然后随机选择来自它的一个char,看看是否匹配正则表达式,然后再次进行必要的次数,直到完成随机字符串。
一个问题是,使用这种方法可能无法完成。
这是我的代码:
var set=
'abcdefghijklmnopqrstuvwxyz'+
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'+
'0123456789'+
'ºª\\!|"@·#$~%¦&¬/½(⅛)^=`\'?¯¿˘[`+]*´{¨ç}ÇñÑ.:,;-_<>«»¶¥ŧđ¢ħ£æø€åœð®þŋߤ׵';
function randomString(size, regex){
var i=0;
text='';
var length=set.length-1;
while(i<size){
var nth=Math.round(Math.random()*length);
var ch=set.charAt(nth);
if(ch.match(regex)){
text+=ch;
i++;
}
}
return text;
};
有更好的方法吗?