javascript的正则表达式中可以传递变量吗?

举个例子:functionmatch(value){varmatchText="abcde";returnmatchText.match(/value.*/);//类似与... 举个例子:
function match(value)
{
var matchText = "abcde";

return matchText.match(/value.*/);//类似与这样的
}

我的想法,就是想用一个参数来代替正则表达式中的一部分

请教高手赐教
这个问题涉及到一个具体的应用。

一个select列表框A,这个框中的值是从数据库中读取的。
现在,由另一个select列表框B的onChange事件会执行一个筛选function,这个function会筛选列表框中A的一部分数据。

例如,列表框A中有5个value为A开头的,3个B开头的,2个C开头的值。我现在要通过这个筛选方法,筛选掉value开头是B的那3个Option选项。然后只保留5个A的和2个C的Option。

因为列表框A涉及有很多中字母或数字或其他字符开头的情况。如果穷举是不是多一种条件就得多一个if else
展开
 我来答
百度网友2571d37bb
2015-08-12 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部

可以的,

javascript中的正则表达式有两种书写方式;

  1. new RegExp();

  2. //

第一种是可以接受变量的,第二种不行,因为会把//里的内容当字符串处理。

<script>
var str = 'sfsffdgdsrgergsdga';
var sRex = 'ff';
var reg = new RegExp(sRex);
alert(str.match(reg));
</script>
受嫣然b6
2008-06-23 · TA获得超过100个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:121万
展开全部
你这个思路就是有问题
像你说的这种级联其实没那么复杂,用javascript的数组就可以解决了。你提问题的时候看到百度的那个分类了吧?试着扒一下他的代码,看了你就应该可以做出来了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兴斯星08
2008-06-23 · TA获得超过783个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:0
展开全部
肯定回答你,是可以的:

function match(value)
{
var matchText = "abcde";
//这里value里面的^,$等符号自己替换成\^,\$等
//这里我就不处理了
var reg_str = '/'+value+'*/';
return matchText.match(eval(reg_str));
//注意一定要用eval
}
不知其他人有更省的办法么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式