Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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如何使split()不区分大小写_Javascript - Fatal编程技术网

javascript如何使split()不区分大小写

javascript如何使split()不区分大小写,javascript,Javascript,我想在Red和Red上拆分如何使拆分不区分大小写 const str = "my Red balloon" const searchTxt = "red" const strArr = str.split(searchTxt); 我试过各种各样的 const strArr = str.split(/searchTxt/gi); 为了在正则表达式中使用变量,需要使用RegExp构造函数。无需使用g标志,因为split将始终查找所有事件: const s

我想在
Red
Red
上拆分如何使拆分不区分大小写

const str = "my Red balloon"
const searchTxt = "red"
const strArr = str.split(searchTxt);
我试过各种各样的

const strArr = str.split(/searchTxt/gi);

为了在正则表达式中使用变量,需要使用RegExp构造函数。无需使用
g
标志,因为
split
将始终查找所有事件:

const str=“我的红气球”
const searchTxt=“红色”
const strArr=str.split(新的RegExp(searchTxt,'i');

控制台日志(strArr)要在正则表达式中使用变量,需要使用RegExp构造函数。无需使用
g
标志,因为
split
将始终查找所有事件:

const str=“我的红气球”
const searchTxt=“红色”
const strArr=str.split(新的RegExp(searchTxt,'i');
控制台日志(strArr)使用带有所需标志的构造函数作为第二个参数

RegExp(表达式、标志)

重要提示:向RegExp构造函数传递任意字符串(如用户输入)时,请始终确保 转义RegExp特殊字符
RegExp
可能会混淆为正则表达式标记,例如
(任何字符)
(一个或多个)等。请参阅下面的两个链接演示

const str=“我的红气球”
const searchTxt=“红色”
const regEscape=v=>v.replace(/[-[\]{}()*+?,\\^$\\\\s]/g,'\\$&');
const strArr=str.split(新的RegExp(regEscape(searchTxt),“ig”);
console.log(strArr)
使用带有所需标志的构造函数作为第二个参数

RegExp(表达式、标志)

重要提示:向RegExp构造函数传递任意字符串(如用户输入)时,请始终确保 转义RegExp特殊字符
RegExp
可能会混淆为正则表达式标记,例如
(任何字符)
(一个或多个)等。请参阅下面的两个链接演示

const str=“我的红气球”
const searchTxt=“红色”
const regEscape=v=>v.replace(/[-[\]{}()*+?,\\^$\\\\s]/g,'\\$&');
const strArr=str.split(新的RegExp(regEscape(searchTxt),“ig”);

console.log(strArr)
您需要像这样使用
RegExp()

const str = "my Red balloon"
const searchTxt = "red"
const rgx = RegExp(searchTxt, "gi");
const strArr = str.split(searchTxt);

这是因为您不能简单地使用
/searchTxt/gi
方法,因为它将以字符串的形式读取它(因此它将在与“searchTxt”匹配的位置被拆分为字符串,而不是变量)。

您需要像这样使用
RegExp()

const str = "my Red balloon"
const searchTxt = "red"
const rgx = RegExp(searchTxt, "gi");
const strArr = str.split(searchTxt);

这是因为您不能简单地使用
/searchTxt/gi
方法,因为它将以字符串的形式读取它(因此它将在与“searchTxt”匹配的位置作为字符串而不是变量进行拆分).

转义特殊字符有什么好处?@Bill如果搜索字符串为:
ed?
将被视为
正则表达式零或一个字符,而不是问号-因此,您始终需要将来自用户输入的字符转义到
RegExp
构造函数中。@Bill您可以使用String.raw
\d\d
来避免使用“\\d\\d”。@Bill请参阅此JSFIDLE示例以了解发生了什么,即您没有转义特殊的RegExp字符:-输出非常清楚不是你想要的。在这里,它是固定的:并返回预期的拆分。转义特殊字符有什么好处?@Bill如果搜索字符串为:
ed?
将被视为
正则表达式零或一个字符,而不是问号-因此,您始终需要将来自用户输入的字符转义到
RegExp
构造函数中。@Bill您可以使用String.raw
\d\d
来避免使用“\\d\\d”。@Bill请参阅此JSFIDLE示例以了解发生了什么,即您没有转义特殊的RegExp字符:-输出非常清楚不是你想要的。在上面的例子中,
searchText
是小写的,但是我不能使
str
小写在上面的例子中,
searchText
是小写的,但是我不能使
str
小写