我在AS3中获得了此代码:
on()
是否可以告诉代码搜索"星期一,星期二或星期日,或星期四,或星期五"并用" _"替换它们?
其次,是否可以告诉代码搜索" 1月"并将其替换为" 01","二月和#34; by" 02" ...等? (如果可能的话,在一行中)?
THX
修改
我想做一些简单的事情:
var str:String = mySharedObject.data.theDate;
var search:String = "monday";
var replace:String = "";
function strReplace(str:String, search:String, replace:String):String {
return str.split(search).join(replace);
}
或
str.replace( "monday"||"tuesday"||"wednsday" , "" );
但它不起作用..
答案 0 :(得分:0)
你想要的是一个正则表达式,它在AS3的RegExp类中实现。传递到String.replace()
的模式可以是RegExp
,可用于执行您想要的匹配类型。
匹配英语语言工作日的简单正则表达式可能如下所示:
(Monday|Tuesday|Wednesday|Thursday|Friday)
这是"正则表达式匹配星期一或星期二或星期三或星期四或星期五"。请注意,这几乎肯定不是最好的正则表达式,但它很简单,它的工作原理。这是一个链接,您可以在此答案的底部了解有关正则表达式的更多信息。
这个正则表达式可以放入一个函数,它接受字符串搜索,要替换的字符串与名为flag
的字符串匹配。 flag
是一个修改正则表达式工作方式的选项列表。 docs for the RegExp
construction提供完整的详细信息。此功能可能如下所示:
private function replaceDay(str:String, replace:String, flag:String = ''):String
{
var search:RegExp = new RegExp("(Monday|Tuesday|Wednesday|Thursday|Friday)", flag);
return str.replace(search, replace);
}
然后您可以对其进行测试(我已成功在Flash Builder中运行它):
// Replace a single, normally capitalized day name
var monday:String = "Monday the 1st";
trace(replaceDay(monday, "REDACTED")); // REDACTED the 1st
// Replace multiple normally capitalized day names
var mondayAndTuesday:String = "Either Monday or Tuesday works for me";
trace(replaceDay(mondayAndTuesday, "", "g")); // Either or works for me
// Replace a single day name regardless of capitalization
var lowerCaseWednesday:String = "wednesday";
trace(replaceDay(lowerCaseWednesday, "yadsendew", "i")); // yadsendew
var weirdCaseThursday:String = "tHurSdaY";
trace(replaceDay(weirdCaseThursday, "It's actually 'Thursday'.", "i")); // It's actually 'Thursday'.
// Replace multiple day names regardless of capitalization
var friday:String = "FriDAY FRIDAY friday";
trace(replaceDay(friday, "Something", "ig")); // Something Something Something
关于将月份名称替换为可能的数字的问题。 docs for String.replace()
中的最后一个示例显示了如何将函数用作replace
值。由于StackOverflow更喜欢one post, one question,因此您应该从此帖子中删除它并发布另一个问题。
有关正则表达式的更多信息,请查看http://www.regular-expressions.info/