TyperError:urlpage.match(...)是null JavaScript正则表达式

时间:2015-08-20 21:57:43

标签: javascript url null

我想从URL中获取一个值并将其放在输入上。 所以,

普通网址:www.mysite.com

有价值的网址:www.mysite.com/mypage.php?variabletext

所以,我想提取?variabletext(是的,它总是一个不同的文本字符串)

我正在使用此功能

 08-20 23:51:23.841  28725-28725/com.mEmoZz.App W/Bundle﹕ Key img expected String[] but value was a java.lang.Integer.  The default value <null> was returned.
 08-20 23:51:23.843  28725-28725/com.mEmoZz.App W/Bundle﹕ Attempt to cast generated internal exception:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String[]
        at android.os.BaseBundle.getStringArray(BaseBundle.java:1258)
        at com.mEmoZz.App.ArticleScreen.onCreate(ArticleScreen.java:36)
        at android.app.Activity.performCreate(Activity.java:5990)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418)
        at android.app.ActivityThread.access$900(ActivityThread.java:154)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5291)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

现在问题。

如果我输入一个值,例如 www.mysite.com/mypage.php?bob

效果很好。

但如果它不是价值,例如 www.mysite.com/mypage.php

我收到此错误:

TyperError:urlpage.match(...)为空

我的想法是,如果变量texturl有一个值,也就是非空,那么只改变输入的值。

任何人都可以帮助我......? 非常感谢

2 个答案:

答案 0 :(得分:0)

如果urlpage.match(regex)null(也就是说,没有匹配项),那么urlpage.match(regex)[1]将会抛出。

所以你可以使用

var match = urlpage.match(regex); 
if(match) {
  var texturl = match[1];
  // Use texturl
}

但是,手动解析URL是个坏主意,请改用URLUtils属性。在这种情况下,search

  

URLUtils.search属性是一个包含?的DOMString   后跟URL的参数。

所以你可以使用

var texturl = location.sarch.substr(1);

答案 1 :(得分:0)

 str =str.replace(/[^a-zA-Z0-9]/g,"");
str = str.replace(/httpwwwmysitecommypagephp/g,"");