使用 split() 方法拆分字符串
Split string using split() method
我正在尝试将字符串拆分为数组,但我使用的正则表达式似乎不起作用
我的代码
<script type="text/javascript">
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
</script>
<script type="text/javascript">
$(document).ready(function(){
var product= GetURLParameter("name");
var producttype=GetURLParameter("type");
var prod = product.replace(/%20/g," ");
var productname = prod.split('\s+(?=\d+M[LG])');
alert(productname[0]);
});
</script>
我的输入字符串是“Calpol Plus 200MG
”
预期输出为 array[0] = "Calpol Plus"
和 array[1] = "200MG"
我使用的正则表达式是\s+(?=\d+M[LG])
您将正则表达式作为字符串传递,看到了吗?
var productname = prod.split('\s+(?=\d+M[LG])');
您需要将其作为正则表达式文字传递:
var productname = prod.split(/\s+(?=\d+M[LG])/);
split()
将按正则表达式或子字符串拆分,具体取决于传递的内容。
而不是
"Calpol Plus 200MG".split('\s+(?=\d+M[LG])')
您必须使用其中之一:
RegExp
将字符串转换为正则表达式的构造函数:
"Calpol Plus 200MG".split(RegExp('\s+(?=\d+M[LG])'))
直接使用正则表达式字面量:
"Calpol Plus 200MG".split(/\s+(?=\d+M[LG])/)
请注意,在这种情况下,您不需要将 \
字符换码为另一个 \
。
我正在尝试将字符串拆分为数组,但我使用的正则表达式似乎不起作用
我的代码
<script type="text/javascript">
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
</script>
<script type="text/javascript">
$(document).ready(function(){
var product= GetURLParameter("name");
var producttype=GetURLParameter("type");
var prod = product.replace(/%20/g," ");
var productname = prod.split('\s+(?=\d+M[LG])');
alert(productname[0]);
});
</script>
我的输入字符串是“Calpol Plus 200MG
”
预期输出为 array[0] = "Calpol Plus"
和 array[1] = "200MG"
我使用的正则表达式是\s+(?=\d+M[LG])
您将正则表达式作为字符串传递,看到了吗?
var productname = prod.split('\s+(?=\d+M[LG])');
您需要将其作为正则表达式文字传递:
var productname = prod.split(/\s+(?=\d+M[LG])/);
split()
将按正则表达式或子字符串拆分,具体取决于传递的内容。
而不是
"Calpol Plus 200MG".split('\s+(?=\d+M[LG])')
您必须使用其中之一:
RegExp
将字符串转换为正则表达式的构造函数:"Calpol Plus 200MG".split(RegExp('\s+(?=\d+M[LG])'))
直接使用正则表达式字面量:
"Calpol Plus 200MG".split(/\s+(?=\d+M[LG])/)
请注意,在这种情况下,您不需要将
\
字符换码为另一个\
。