This question already has answers here:
Javascript split regex question
(7 个回答)
5年前关闭。
大家好我正在写一个脚本,主要思想是我有一个固定结构的文本如下:
我想处理该文本,我想通过以下符号拆分该文本:
|"~,管道双引号和 ~,我想创建一个数组来存储这些值,如下所示:
为了实现它,我尝试过:
我得到:
问题在于这只是通过管道拆分文本,我也想将其拆分为其他符号,以获得我想要的输出。
完整的代码如下所示:
我想感谢任何关于正则表达式的建议来实现这一点。
首先你需要替换
然后拆分行,因为它就像表格行......
然后用可能的分隔符
Console.log 输出将是:
然后用二维数组
(7 个回答)
5年前关闭。
大家好我正在写一个脚本,主要思想是我有一个固定结构的文本如下:
"RBD|X|RBD|C|92173~GJHGWO.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGX4.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGX6.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGX8.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGXA.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGXC.NAYE" "SAMBORNSiPOSSSTHRa"
我想处理该文本,我想通过以下符号拆分该文本:
|"~,管道双引号和 ~,我想创建一个数组来存储这些值,如下所示:
splitWords = [RBD,X,RBD,C,92173,GJHGWO.NAYE,SAMBORNSiPOSSSTHRa]
为了实现它,我尝试过:
var splitWords = document.getElementById("texto").value.split("|");
document.write(stringArray.toString());
我得到:
"RBD,X,RBD,C,92173~GJHGWO.NAYE" "SAMBORNSiPOSSSTHRa" "RBD,X,RBD,C,92173~GJHGX4.NAYE" "SAMBORNSiPOSSSTHRa" "RBD,X,RBD,C,92173~GJHGX6.NAYE" "SAMBORNSiPOSSSTHRa" "RBD,X,RBD,C,92173~GJHGX8.NAYE" "SAMBORNSiPOSSSTHRa" "RBD,X,RBD,C,92173~GJHGXA.NAYE" "SAMBORNSiPOSSSTHRa" "RBD,X,RBD,C,92173~GJHGXC.NAYE" "SAMBORNSiPOSSSTHRa"
问题在于这只是通过管道拆分文本,我也想将其拆分为其他符号,以获得我想要的输出。
完整的代码如下所示:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<textarea cols=150 rows=15 id="texto">
"RBD|X|RBD|C|92173~GJHGWO.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGX4.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGX6.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGX8.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGXA.NAYE" "SAMBORNSiPOSSSTHRa"
"RBD|X|RBD|C|92173~GJHGXC.NAYE" "SAMBORNSiPOSSSTHRa"
</textarea>
<script>
var splitWords = document.getElementById("texto").value.split("|");
document.write(splitWords.toString());
</script>
</body>
</html>
我想感谢任何关于正则表达式的建议来实现这一点。
最佳答案
好的,让我们开始吧……获取 textarea
值并 trim 它……
var splitWords = document.getElementById("texto").value.trim();
首先你需要替换
"
符号...splitWords = splitWords.replace(/"/g, '');
然后拆分行,因为它就像表格行......
splitWords = splitWords.split('\n');
然后用可能的分隔符
|
, ~
,
...splitWords.forEach(function(rowValue,rowIndex) {
splitWords[rowIndex] = rowValue.split(/[|~ ]/);
console.log(rowIndex, splitWords[rowIndex]);
});
Console.log 输出将是:
0 ["RBD", "X", "RBD", "C", "92173", "GJHGWO.NAYE", "SAMBORNSiPOSSSTHRa"]
1 ["RBD", "X", "RBD", "C", "92173", "GJHGX4.NAYE", "SAMBORNSiPOSSSTHRa"]
2 ["RBD", "X", "RBD", "C", "92173", "GJHGX6.NAYE", "SAMBORNSiPOSSSTHRa"]
3 ["RBD", "X", "RBD", "C", "92173", "GJHGX8.NAYE", "SAMBORNSiPOSSSTHRa"]
4 ["RBD", "X", "RBD", "C", "92173", "GJHGXA.NAYE", "SAMBORNSiPOSSSTHRa"]
5 ["RBD", "X", "RBD", "C", "92173", "GJHGXC.NAYE", "SAMBORNSiPOSSSTHRa"]
然后用二维数组
splitWords
做任何你想做的事......关于javascript - 如何构造正则表达式来拆分此文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37575233/