为了账号安全,请及时绑定邮箱和手机立即绑定

我想在每次提交表单时生成一个格式为“ZXCVBN”的随机字符串

我想在每次提交表单时生成一个格式为“ZXCVBN”的随机字符串

繁花如伊 2022-07-01 10:22:06
我想在每次提交表单时生成一个格式为“ZXCVBN”的随机字符串,并分配给 add-event.comonent.ts 文件中事件数组的“code”参数。我该怎么做?代码必须正好包含 6 个大写随机字母。添加-event.component.ts:-export class AddEventComponent implements OnInit {  event: Event = {    code: '',    name:'',    password:'',    pollCat:''  }  constructor(private eventService : EventsService) { }  ngOnInit() {  }  onSubmit()  {    if(this.event.name !="" && this.event.password !="")    {      this.eventService.addEvent(this.event);      this.event.name = '';      this.event.password = '';    }  }}events.service.ts:-  @Injectable({  providedIn: 'root'})export class EventsService {  eventsCollection : AngularFirestoreCollection<Event>;  events: Observable<Event[]>;  constructor(public afs: AngularFirestore) {     this.eventsCollection = this.afs.collection<Event>('Events');    this.events = this.eventsCollection.snapshotChanges().pipe(    map(changes => {      return changes.map(a => {        const data = a.payload.doc.data() as Event;        data.id = a.payload.doc.id;        return data;      })    }));   }  getEvents()  {    return this.events;  }  addEvent(event: Event)  {    this.eventsCollection.add(event);  }}
查看完整描述

4 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

这是一个解决方案,将其添加到您的代码中


function generateCode(length) {

       var result           = '';

       var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

       var charactersLength = characters.length;

       for ( var i = 0; i < length; i++ ) {

          result += characters.charAt(Math.floor(Math.random() * charactersLength));

       }

       return result;

}

console.log(generateCode(6))    


查看完整回答
反对 回复 2022-07-01
?
MMTTMM

TA贡献1869条经验 获得超4个赞

这应该是一个简单的方法:


let randomString: string = ""


const alphabetsString: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    for (let i = 0; i < 6; i++) {

        let randomNum: number =  Math.floor(Math.random() * (25 - 0 + 1)) + 0;


        let newChar = alphabetsString.charAt(randomNum)


        randomString = randomString.concat(newChar)

    }


//Return the value as per your program. I have used console.log(randomString)

基本上我有一串字母,我使用了一个运行 6 次的循环。每次我得到一个介于 0 到 25 [都包括在内] 之间的随机数并使用charAt(). 所有的字母组合成一个字符串。


查看完整回答
反对 回复 2022-07-01
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

[0,1,2,3,4,5,6].map(x=>'ABCDEFGHIJKLMNOPQRSTUVZ'
               .substr(Math.floor(23*Math.random()),1))
               .join('')


查看完整回答
反对 回复 2022-07-01
?
12345678_0001

TA贡献1802条经验 获得超5个赞

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js">

  function generateRandomString(length) {

    var text = "";

    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";


    for (var i = 0; i < length; i++)

      text += possible.charAt(Math.floor(Math.random() * possible.length));


    return text;

  }


</script>


查看完整回答
反对 回复 2022-07-01
  • 4 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信