JS - 检查文本字段输入中的 http://
JS - Check For http:// In TextField Input
我正在使用Appcelerator的Titanium IDE用JavaScript编写我的应用程序。我一直在研究这个问题并尝试正则表达式大约两个小时了。无论如何,我的问题是这样的:
我有一个网址栏。如果用户以"www"开始输入。我希望它在前面添加"http://",如果它们以"http://"开头,它就不会添加它。而且,如果没有"www.",它将添加完整的"http://www."。
一个实用的方法是使用正则表达式(我以前从未使用过它,没有任何经验)或其他东西来查看前两个字母是"ht"还是"ww",如果这不是匹配的,那么它只会添加"http://www"。
我刚刚在上面发布的内容是我认为一个人会做的事情,我很可能听起来完全疯了,因为它毫无意义。我并不是真的要求写出整个代码;我可以添加各种东西,我只是在寻找一些对我能够插入和使用/修改有用的代码/输入。
谢谢!
编辑:很棒的回应!我确信大部分工作 - 如果不是全部,所以我尽力了并点赞:)
正则表达式对于这种字符串操作来说太复杂了。试试这个:
<input onchange="testUrl(this)">
<script>
function testUrl(el){
if(el.value.indexOf('http://') == 0){
if(!el.value.indexOf('http://www.')){
el.value = 'http://' + el.value.substr(6);
}
} else {
el.value = 'http://www.' + el.value.substr(6);
}
}
</script>
这是另一种解决方案:
var appendHttpToUrl = function(url){
var httpwww = "http://www.";
var rx = /(^http:'/'/|^www'.)/g;
if(url.indexOf(httpwww) === -1){
if(url.indexOf("http://") > -1 || url.indexOf("www.") > -1){
url = url.replace(rx,httpwww);
}else{
url = httpwww+url;
}
}
return url;
}
这是一个演示 http://jsfiddle.net/TJn7A/5/。
if(url.match(/^http:'/'/$/)
// do stuff for when they start with http://
if(url.match(/^www'./))
// do stuff for when they start with www
if(!url.match(/(www?'.?|htt?p?:?'/?'/?)/))
// do stuff for a matching ww or ht...
分解它...
-
^
是模式的开始 -
$
是模式的结束 -
(...|...)
是左侧或右侧 -
'/
和'.
在必要时转义特殊字符'
-
?
使前一个字符可选
我刚刚破解了这个。是的,它很丑,但它也可以处理https:)
function fixURL(input){
var r = input.match(/^(https?:'/'/)?(www'.)?(.*)$/);
return ((r[1] ? r[1] : 'http://') + (r[2]?r[2]:'') + r[3]);
}
var input="example.com/test";
alert(fixURL(input));
如果您发现此功能失败的情况。 请修复它;-)
相关文章:
- 是否可以在没有HTTP请求或<输入>
- 来自 http://dondedeportes.es/uploader-previewer/ 的图片上传工具:更改输入以
- 如何检查“http://”是否包含在 Angular .js 应用程序的 url 输入中
- JS - 检查文本字段输入中的 http://
- 如何接受用户输入并插入到 http get 请求中
- Angular JS:在HTTP服务(POST)中传递输入参数
- 将数据从输入字段传递到角度工厂中的 $http.get
- Angular2 嵌套组件: 错误: core_2.输入不是函数 加载 http://localhost:9080/ap
- 在HTTP请求后向表单添加新的输入
- 让 Chrome 不要在输入中要求输入“http://”
- 如何阻止http网站和链接被输入<text区域>动态地
- angularjs服务,$http.post未同时输入成功或错误回调
- 我怎么能把我的数据输入在angular http post
- Angular-bootstrap使用$http提前输入
- 根据用户输入动态创建HTTP链接
- 决定HTTP报头的字符集.我应该简单地输入utf-8,然后忽略它吗?
- 如何配置Logstash以接收来自angularJS的http请求作为输入
- 在CycleJS中使用输入字段值作为HTTP请求数据的一部分
- 角http.Post输入带ng-repeat和不带ng-repeat
- 通过在Node中发出http请求来验证表单输入