定义脚本将单个文本分解为多个条件

问题描述 投票:0回答:2

我正在 Tampermonkey 上使用一个简单的脚本来更改网页上的某些值。

网页中的输入框有一个输入值,即“FPPUTHP1100000”

这是一个物料代码,物料代码结构如下:-

F代表新鲜

PPUTHP代表PPC

110代表ACS

0000 代表MRP。

材质代码不是通用的,每次都可能更改。

我想将其记录在变量中并将合并的文本推送到空输入框中

像 ACS-PPC-MRP-FRESH

素材代码较多,但基本结构仅如上。

第一个字母可以是F、C、P、D(FRESH、C&T、PDMG、DMG)

接下来的六个字母可以是

PPUTHP、PPUSLH、PPUFLH、43UTHP、53UTHP(PPC、SUPER、WP、OPC43、OPC53)

接下来的三个字母可以是 110,111,112,113,114 (ACS,VCS,PGU,DGU,AGU)

接下来的四个字母可以是0000和5000(MRP,NON MRP)

谁能告诉我如何制作这个脚本。

javascript jquery reactjs var
2个回答
0
投票

首先使用 document 将值存储在变量中。 getElementById()

像这样...

var string = document.getElementById("*replace this with id if input field")

现在只需在此字符串上应用子字符串函数并将它们保存到这样的变量中......

var first =  string.substring(1, 0); \\ this will give you the first letter
var second =  string.substring(1, 7); \\ it will give you next 6 letters
var third =  string.substring(7, 10);  \\ it will give you next 3 letters
var fourth =  string.substring(10, 14); \\ it will give you next 4 letter

现在只需应用条件并让你像这样串起来

 let final_string = ""
 if(first == "f"){
  final_string = final_string + "FRESH-"
 }

 else if(first == "C"){
  final_string = final_string + "C&T-"
 }

 else if(first == "P"){
  final_string = final_string + "PDMG-"
 }

 else{
  final_string = final_string + "DMG-"
 }

现在同样应用 if-else 梯子并将该部分相应地添加到 Final_string ..


0
投票

假设输入始终按照您给定的顺序和长度,并且转换始终是您给定的值之一,您可以创建一个数组,其中分隔点指向输入,然后创建另一个数组使用匹配索引作为查找字典。像这样的东西:

substring
let delimits = [0,1,7,10],
    lookup = [
      { C: 'C&T', D: 'DMG', F: 'FRESH', P: 'PDMG' },
      { PPUTHP:'PPC', PPUSLH: 'SUPER', PPUFLH: 'WP', '43UTHP': 'OPC43', '53UTHP': 'OPC53' },
      { '110': 'ACS', '111': 'VCS', '112': 'PGU', '113': 'DGU', '114': 'AGU' },
      { '0000': 'MRP', '5000': 'NON MRP' }
    ];

document.querySelector('button').addEventListener('click', function() {
  document.querySelector('input.output').value = delimits.map((delimit, index) =>
      lookup[index][document.querySelector('input.input')
        .value.substring(delimit, delimits[index + 1])]
  ).join('-');
});

document.querySelector('input.input').value = 'FPPUTHP1100000';

如果您希望输出的顺序与输入的顺序不同,您可以:

<input class="input"><button> -> </button><input class="output">

© www.soinside.com 2019 - 2024. All rights reserved.