一些技术积累

7 篇文章 0 订阅

函数组件没有options怎么获取路由携带的参数的

// 页面的传递参数
navigateTo({
      url: `/pages/answerQues/index?index=${index}`,
    });

// URL地址参数的获取
useEffect(() => {
    const num = getCurrentInstance().router?.params.index
    console.log('num',num)
})

taro中微信授权用户昵称和头像

 <Button
     open-type='getUserInfo'
     onGetUserInfo={getUserProfile1.bind(this, 1)}
   >
     微信用户一键绑定
   </Button>
以上这种经常获取不到用户授权信息的弹窗
我们可以用以下这种方式
<Button
  onClick={getUserProfile1.bind(this, 1)}
 >
   微信用户一键绑定
 </Button>
 // 使用taro的时间getUserProfile进行调用微信用户信息授权弹框
const getUserProfile1= (num,e)=>{
 getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (response) => {
        console.log('调取wx.getUserProfile弹窗',response)
        if (e.detail.errMsg == 'getUserInfo:fail auth deny') {
          return
        }
        wx.login({
          success: res => {
            setcode(res.code)
            wx.request({
              url: getUserInfo,
              method: 'POST',
              header: {
                "Content-Type": "application/x-www-form-urlencoded"
              },
              data: {
                code:res.code,
                encryptedData: response.encryptedData,
                iv: response.iv,
                userInfoId:portalUserId,
              },
              success: (res)=> {
				·······
              },
            });
          }
        })
      },
      fail:  (response)=> {
        console.log('调取wx.getUserProfile弹窗失败',response)
        Taro.showToast({title:'调取微信授权失败,请重试', icon:'none'})
      }
    })
}

正则中match无法输入变量

//计算str中char字符出现的个数
function lengthChar(char, str){
   
  let arr =  str.match(/\`${char}\`/ig)
   let arr =  str.match(reg)
   console.log(arr.length)
}
打印值都是null  因为无论你怎么写,都会被当作正则的一部分来处理
function lengthChar(char, str){
   let reg = new RegExp(`${char}`, 'ig')
//    let arr =  str.match(/\`${char}\`/ig)
   let arr =  str.match(reg)
   console.log(arr.length)
}
lengthChar(char, str)

原题:

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
const str = readline();
const char = readline();
// 方法一:for循环
// function lengthChart(char, str){
    
//     // 全部转小写
//     const charlower = char.toLowerCase()
//     const strlower = str.toLowerCase()
//     // 定义
//     let length = 0
    
//     for(let i = 0;i<=strlower.length;i++){
//         if(strlower[i]==charlower){
//             length++
//         }
//     }
//     return length
// }
// console.log(lengthChart(char, str))


//方法二:正则
// function lengthChar(char, str){
//    let reg = new RegExp(`${char}`, 'ig')
// //    let arr =  str.match(/\`${char}\`/ig)
//    let arr =  str.match(reg)
//    console.log(arr.length)
// }
// lengthChar(char, str)

// 方法三 递归
let length=0
function lengthChar(char, str){
    let charlower = char.toLowerCase()
    let strlower = str.toLowerCase()
    let index = strlower.indexOf(charlower)
    if(index!='-1'){
        length++
        return lengthChar(charlower, strlower.substring(index+1))
    }else{
        return
    }
    
}
lengthChar(char, str)
console.log(length)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值