分类 JavaScript/Node.js 下的文章

感谢那几位大佬指点,给他们发红包感谢了。(其实就几毛钱,但是我QQ也就剩下这么多...... )

方法1

str = '[CQ:at,qq=1052757154,text=@筱可儿]';
qq = str.match(/qq=(\d+)/);
console.log(qq)

输出:

[
  'qq=1052757154',
  '1052757154',
  index: 7,
  input: '[CQ:at,qq=1052757154,text=@筱可儿]',
  groups: undefined
]

QQUID=qq[1]

方法2

str = '[CQ:at,qq=1052757154,text=@筱可儿]';
qq=str.match(/(?<=qq=)\d+|(?<=text=@).+(?=\])|(?<=\]).*/g);
console.log(qq)

输出:

[ '1052757154', '筱可儿', '' ]

QQUID=qq[0],nickname=qq[1]

为什么用到这个?因为我想要得到形如text 123456这串文字中的123456部分,延伸一下用途,这可以用来处理qbot接收到的指定格式命令的消息,得到命令标识后的命令部分。

split()

split()把一个字符串分割成字符串数组:
标准语法:string.split(separator,limit)

  • separator:可选。 字符串或正则表达式,从该参数指定的地方分割 string Object。
  • limit:可选。 该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

    示例

    var message = "xiao 12345"
    var array = message.split(" ") //此处使用一个空格作为分隔符即“separato”,如果使用空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
    console.log(array) //直接输出数组array
    console.log(array[0]) //输出数组array的第一个元素
    console.log(array[1]) //输出数组array的第二个元素
    -----------------输出结果--------------------
    [ 'xiao', '12345' ]
    xiao
    12345

    如果你在visual sutdio code中执行出现报错(没有可用的调试程序,无法发送“variables”),可以安装Code Runner 使用组合键Ctrl Alt N直接运行,也可以在launch.json文件内program下面加一行"console": "integratedTerminal" ,此语句设置 启动调试目标的位置为integratedTerminal即 VS Code 的集成终端。

感谢ACGP社团社长MartinKay提供方案指导。

部分内容使用了https://www.runoob.com/jsref/jsref-split.html 提供的资料