0 0

下拉框取值问题10

if (sc != null) {
for (int i = 0; i < sc.size(); i++) {

buffer.append("<option value=\"").append(
soi.getValue(i, valueNodeName).toString()).append("\"");

if (_selectValue != null
&& _selectValue.equals(soi.getValue(i, valueNodeName).toString())) {
buffer.append(" selected");
}

buffer.append(">").append(soi.getValue(i, descNodeName).toString())
.append("</option>");

}
}


这段代码是设置jsp页面中的下拉框的值,

private String subStringBySelect(final String str) {
Pattern pat =  Pattern.compile("selected>[^>]+</option>");

Matcher mat = pat.matcher(str);
String str1 = null;
while (mat.find()) {
str1 = mat.group(0);
}
int star = 9;
int end = str1.length() - 9;
if (star > end)
return "";
return  = str1.substring(star, end);


}
这是取下拉框的值,为什么Pattern pat =  Pattern.compile("selected>[^>]+</option>");必须这样写才能取到,其余的的写法取不到,Pattern.compile,pat.matcher(str)这两个表示什么意思,请给位赐教

问题补充:mat.find()又是怎么样匹配的
2012年10月16日 19:57

2个答案 按时间排序 按投票排序

0 0

首先要理解java的正则表达式,
selected>[^>]+</option>就是一个正则表达式。

对于给定的字符串,按照下面的规则进行匹配:
1.先是以selected>开头
2.selected>后面是>以外的任意字符(1个或者n个)
3.最后以</option>结尾

对于一个规则,正则表达式可能有多种写法,也不一定非得
按照selected>[^>]+</option>这么写,只要准确地表达了
自己的需求就可以。

比如:除了>,你还希望selected>后面不能包含#,那么就可以把
正则表达式修改为selected>[^>#]+</option>



Pattern.compile用来定义正则表达式。
pat.matcher(str)是用之前定义的正则表达式对str进行匹配。
如果有符合匹配规则的字符串,那么mat.find()就会返回true。
接着用str1 = mat.group(0)获取匹配到的字符串。
然后通过str1.substring从str1中截取想要的子串。

比如:对下面的下拉框选项的html文进行处理。
<option value="test" selected>test</option>

先通过正则表达式匹配到selected>test</option>子串,然后
用str1.substring截取到test。

public static void main(String[] args){
 	
    String str = "<option value=\"test\" selected>test</option>";
    Pattern pat =  Pattern.compile("selected>[^>]+</option>"); 

    Matcher mat = pat.matcher(str); 
    String str1 = null; 
    while (mat.find()) { 
       str1 = mat.group(0); 
       System.out.println(str1);
    } 
 	int star = 9; 
    int end = str1.length() - 9; 
    if (star > end){
        return;
    }else{
        System.out.println(str1.substring(star, end)); 
    }
 }

输出结果:
selected>test</option>
test

2012年10月17日 17:09
0 0

这样把 buffer 的字符打印出来,在html中允许,或者直接在html中运行,把正确的html和打印的html做一个对比。

2012年10月17日 09:16

相关推荐

    GridView中的下拉框取值

    在许多业务场景中,我们可能需要在GridView的某一列中嵌入下拉框(ComboBox),以便用户可以选择特定的值。本篇将深入探讨如何在GridView中实现下拉框,并从中获取用户选择的值。 首先,我们需要创建一个GridView,...

    asp在线考试系统 基于B/S

    在描述中提到的“试卷生成”环节,可能存在下拉框取值问题。这可能涉及到ASP编程中的数据绑定和用户界面设计。在创建试卷时,通常会涉及到选择题型,如单选题、多选题,这时候就需要用到下拉框来展示可选项。下拉框...

    jquery模拟SELECT下拉框取值效果

    ### Jquery模拟SELECT下拉框取值效果知识点 在Web开发中,下拉选择框(SELECT元素)是一种常见的用户交互控件,它允许用户从一系列预设选项中选择一个或多个选项。然而,原生的SELECT元素在外观和用户体验上可能受...

    下拉框变成下拉模糊搜索框

    目前的下拉框dropdownlist、select就是简单的选择,如果遇到内容过多会很难找出想找的选项,我用简单的js文件将现在的下拉框改成下拉模糊搜索框,支持汉字拼音首字母模糊匹配和字符串字串匹配,本代码的强大在于扩展...

    Delphi中StringGrid动态绑定下拉列表

    问题1:如何在 StringGrid 某单元格中显示 ComboBox 为了在 StringGrid 中显示 ComboBox,我们可以使用 OnDrawCell 事件。在这个事件中,我们可以根据单元格的位置和状态来决定是否显示 ComboBox。例如,我们可以...

    zTree实现多选下拉框

    此外,合理设置`keep.parent`和`check.chkboxType`属性可以避免不必要的全选/全不选问题。 7. **兼容性和适配**:确保zTree在不同浏览器和设备上的表现一致性,这可能需要对CSS和JavaScript代码进行调整,以适应...

    layui多选下拉框样式,整套layui-select-multiple

    关于“取值”,在Layui的多选下拉框中,你可以通过JavaScript事件来获取用户的选择。当用户完成选择后,可以监听“change”事件,然后通过`.val()`方法获取选中项的值,这些值通常是以逗号分隔的字符串形式返回。 ...

    jQuery Select下拉框动态取值演示程序

    内容索引:脚本资源,jQuery,Select,动态取值,下拉框 jQuery Select下拉框动态取值实例程序,也就是当选择下拉框的时候,值才会被读出来,读取过程中显示“Loading……”,以前用JavaScript可以实现这功能,不过现在...

    jQGrid动态填充select下拉框的选项值(动态填充)

    3. 如果使用同步请求,注意其可能带来的性能问题,考虑改为异步请求并在回调中处理数据。 通过这种方式,你可以根据业务需求动态地更新 jQGrid 中 select 下拉框的选项,提高用户界面的灵活性和实用性。同时,了解...

    vue.js select下拉框绑定和取值方法

    下面详细介绍如何在Vue.js中实现select下拉框的绑定和取值方法。 首先,我们要了解什么是v-model指令。v-model是一个语法糖,它是v-bind和v-on指令的结合体。v-model指令在表单元素(如input、select和texterea)上...

    SelecT下拉框选中和取值的解决方法

    Select下拉框的问题,想在选择一个选项后,前台显示做出变动,并且知道选择的是第几个选项。 这个很好解决: 如下: &lt;select class=form-control onchange=selectOnchang(this)&gt; 男装 女装 童装&lt;/opti

    浅谈Vue Element中Select下拉框选取值的问题

    Vue Element 中 Select 下拉框选取值的问题 在 Vue Element 中,Select 下拉框是非常常用的一个组件,它可以让用户快速地选择某个选项。但是,在实际开发中,我们经常会遇到一些问题,例如如何获取选中后的值、如何...

    layui-多选下拉框-xm-select-demo源码

    《layui-多选下拉框-xm-select:前端开发中的高效解决方案》 在现代Web开发中,用户界面的交互性和易用性是至关重要的。layui框架以其轻量级、高效和丰富的组件库,成为了众多开发者青睐的选择。尤其在构建多选...

    layui表单验证select下拉框实现验证的方法

    layui 的form表单里的select 一开始以为加上lay-verify=”required”就可以验证不空了,可是反复试了几次都不能验证 代码如下: 所属工种: &lt;select name=work_id lay-verify=required lay-search&gt;...

    自定义Django Form中choicefield下拉菜单选取数据库内容实例

    在Django中,Form是处理用户输入数据的重要工具,它允许开发者自定义表单的结构、验证规则以及渲染方式。本篇文章将详细讲解如何在Django Form中自定义`ChoiceField`,使其下拉菜单的选项从数据库中动态获取。...

    bootstrap下拉框动态赋值方法

    其中,Bootstrap下拉框是一种常用组件,允许用户从一系列选项中选择一个或多个选项。在前端开发中,经常需要从服务器端动态获取数据,并更新下拉框的选项,这就涉及到动态赋值的技术。 在介绍动态赋值方法之前,...

    Jquery操作下拉框(DropDownList)实现取值赋值

    本文将详细介绍如何使用jQuery来操作下拉框(DropDownList)进行取值和赋值。 首先,要获取下拉框中选中项的值,可以使用jQuery的`.val()`方法来获取选中项的Value值,这是实际存储在HTML标签中`value`属性的值。...

Global site tag (gtag.js) - Google Analytics