试图从字符串中找到值是数字或整数

时间:2015-03-14 17:38:46

标签: coldfusion

使用下面的url字符串,我需要找到名为construction的参数的值。

<cfset understand = "http://www.example.com/ops.cfm?id=code&construction=148&construction=150&Building=852&Building=665&Building=348&Building=619&Building=625&Building=626&_=1426353166006&action=SUBMIT">

<cfset understand2 = "http://www.example.com/ops.cfm?id=code&construction=AVENT+Construction+Site&construction=Signore+upper+constructions&Building=852&Building=665&Building=348&Building=619&Building=625&Building=626&_=1426353166006&action=SUBMIT">

然后我想检查值是数字还是字符串。我这样做:

isDefined('understand') and isnumeric(understand)

但它总是返回“NO”。

2 个答案:

答案 0 :(得分:1)

似乎是REGEX的一个好例子,但这不是我的力量。如果您一直在寻找相同项(构造)的值,则可以利用底层Java并使用STRING.split()方法。然后使用Coldfusion val()函数来查看你得到的内容。以下解决方案假定0不是有效值。如果是,那么你还有更多工作要做。

<cfscript>
    target=understand;
    //target=understand2;  //uncomment to try the second values
    token="construction=";
    potentialValues = target.split(token); //creates an array of values using the token as a separator
        for (item in potentialValues )
        {
            writeoutput(val(item) & "<br />");  //val will grab the numerical value and ignore everything that follows.  No number will become 0
        }
</cfscript>

答案 1 :(得分:0)

试试这个:

constructionIsAt = find(understand, "construction");
characterAfterConstruction = mid(understand, constructionIsAt + 13, 1);
if isNumeric(characterAfterConstruction) {
code for numeric
}
else {
code for non numeric
}