Action

02 Word Counter

Last update almost 5 years ago - Unlisted

Steps

  • script

    var input = draft.content
    
    var text = input.toString()
    
    var cn_re = /^[\u4E00-\uFA29]*$/
    var word_re = /\w+/g
    var num_re = /\d+/g
    var symbol_re1 = /[,。、?!()[]{}《》〈〉%*“”]/
    var symbol_re2 = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/
    
    var cn_count = 0
    var word_count = 0
    var num_count = 0
    var symbol_count1 = 0
    var symbol_count2 = 0
    
    //统计英文单词数
    var word_list = text.match(word_re)
    if (word_list != null){
    var word_add = word_list.length;
    word_count += word_add
    }
    
    //统计数字数
    var num_list = text.match(num_re)
    if (num_list != null){
    var num_add = num_list.length;
    num_count += num_add
    }
    
    for (var i = 0; i < text.length; ++i) {
      var character = text.charAt(i)
      
    //统计中文字数
      if (cn_re.test(character)) {
        ++cn_count
      }
    
    //统计全角标点符号数
      if (symbol_re1.test(character)) {
        ++symbol_count1
      }
    
    //统计半角标点符号数
      if (symbol_re2.test(character)) {
        ++symbol_count2
      }
    }
    
    //计算总字数
    var sum_count = cn_count + word_count + num_count + symbol_count1 + symbol_count2/2
    
    
    draft.setTemplateTag("sum_count",sum_count)
  • prompt

    promptKey
    prompt
    promptTitle
    字数统计
    promptMessage
    共计:[[sum_count]] 字
    promptButtons
    OK
    includeTextField
    false
    textFieldDefault
    includeCancelButton
    true

Options

  • After Success Default
    Notification Info
    Log Level Error
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.