微信小程序轮播图

wxml:

<view class="swiper-container">
 <swiper autoplay="auto" interval="5000" duration="500" current="{{swiperCurrent}}" bindchange="swiperChange" class="swiper">
 <block wx:for="{{slider}}" wx:key="unique">
  <swiper-item>
  <image src="{{item.picUrl}}" class="img"></image>
  </swiper-item>
 </block>
 </swiper>
 
 <view class="dots">
 <block wx:for="{{slider}}" wx:key="unique">
  <view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view>
 </block>
 </view>
</view>

wxss:

swiper-container{
 position: relative;
}
.swiper-container .swiper{
 height: 300rpx;
}
.swiper-container .swiper .img{
 width: 100%;
 height: 100%;
}
.swiper-container .dots{
 position: absolute;
 left: 0;
 right: 0;
 bottom: 20rpx;
 display: flex;
 justify-content: center;
}
.swiper-container .dots .dot{
 margin: 0 8rpx;
 width: 14rpx;
 height: 14rpx;
 background: #fff;
 border-radius: 8rpx;
 transition: all .6s;
}
.swiper-container .dots .dot.active{
 width: 24rpx;
 background: #f80;
}

js:

Page({
data: {
 slider: [
 {picUrl: '../../images/T003R720x288M000000rVobR3xG73f.jpg'},
 {picUrl: '../../images/T003R720x288M000000j6Tax0WLWhD.jpg'},
 {picUrl: '../../images/T003R720x288M000000a4LLK2VXxvj.jpg'},
 ],
 swiperCurrent: 0,
},
swiperChange: function(e){
 this.setData({
  swiperCurrent: e.detail.current
 })
}
})

c# .Net Core 判断字符串是否为英文(包括符号)

做短信网关程序, 有英文和非英文短信的计费问题. 需要根据短信内容类型来确定条数.
英文短信为140个字符为一条, 非英文内容的则为70个字符为一条.
该方法的原理是根据字符编码规范来检查是否是纯英文字符.
UTF8编码规范中, 中文为3或者4位, ASCII字符为1位, 只需要将内容转换为UTF8码后判断长度是否和原内容一致即可.

public static bool IsEn(string content){
    if(string.IsNullOrWhiteSpace(content))
    {
        return false;
    }
    var bytes = Encoding.UTF8.GetBytes(content);
    bool result = bytes.Length == content.Length;
    return result;
}

示例代码如下

using System;
using System.Diagnostics;
using System.Text;

namespace ConsoleDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] arr = new[] {"张三", "zhangsan", "张三aa", "zhangsan123.//*-" };
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine($"'{arr[i]}' 为 {(IsEn(arr[i])? "英文" : "非英文")}");
            }

            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 100000; i++)
            {
                IsEn("zhangsan11111");
            }
            sw.Stop();
            Console.WriteLine($"英文循环10万次用时{sw.ElapsedMilliseconds} 毫秒");

            Stopwatch sw1 = new Stopwatch();
            sw1.Start();
            for (int i = 0; i < 100000; i++)
            {
                IsEn("张三zhangsan11111");
            }
            sw1.Stop();
            Console.WriteLine($"非英文循环10万次用时{sw1.ElapsedMilliseconds} 毫秒");
        }

        public static bool IsEn(string content)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                return false;
            }
            var bytes = Encoding.UTF8.GetBytes(content);
            bool result = bytes.Length == content.Length;
            return result;
        }
    }
}

执行结果

'张三' 为 非英文
'zhangsan' 为 英文
'张三aa' 为 非英文
'zhangsan123.//*-' 为 英文
英文循环10万次用时7 毫秒
非英文循环10万次用时7 毫秒