Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS通过两个不同的字符拆分正则表达式_Javascript_Regex - Fatal编程技术网

Javascript JS通过两个不同的字符拆分正则表达式

Javascript JS通过两个不同的字符拆分正则表达式,javascript,regex,Javascript,Regex,我有两个字符串: "test:header_footer" "test_3142" 我想得到一个数组: array = "test:header_footer".split(":") // ['test', 'header_footer'] array2 = "test_3142".split("_") // ['test', '3142'] 我可以将其与正则表达式组合以获得相同的结果吗 function(s) { retutn s.split(/:|_/) // return bad v

我有两个字符串:

"test:header_footer"
"test_3142"
我想得到一个数组:

array = "test:header_footer".split(":") // ['test', 'header_footer']
array2 = "test_3142".split("_") // ['test', '3142']
我可以将其与正则表达式组合以获得相同的结果吗

function(s) {
 retutn s.split(/:|_/) // return bad value
}

所以,如果字符串包含
':'
-不以秒分隔
'

,您可以编写一行方法来检查
,并根据该条件进行拆分

var text = "your:string";
var array = text.split(text.indexOf(":") >= 0 ? ":" : "_"); // ['your', 'string']

var text2 = "your_string";
var array2 = text.split(text.indexOf(":") >= 0 ? ":" : "_"); // ['your', 'string']

var text3 = "your:other_string";
var array3 = text.split(text.indexOf(":") >= 0 ? ":" : "_"); // ['your', 'other_string']

这将检查
,如果找到,则按
拆分,否则按
\uu

拆分。您可以在字符串上使用
includes
方法来确定是否存在
。如果存在以冒号分隔的字符串,则使用下划线分隔字符串

split_string = s => s.includes(":") ? s.split(":") : s.split("_");
//测试字符串
让str=“my:string\u demo”,
str2=“我的字符串演示”,
str3=“myString:demo\u thing”,
//字符串函数
split_string=s=>s.includes(“:”)?s、 拆分(“:”):s.split(“”);
console.log(
str,拆分字符串(str)
);
console.log(
str2,拆分字符串(str2)
);
console.log(
str3,拆分字符串(str3)

);您的条件不是正则的,因此正则表达式不适合。相反,首先确定是否存在
,然后相应地选择拆分字符。您的第一个字符串同时包含
,如何确定哪一个是分隔符?@yossivainstein:“-具有优先级