0

仕事で dotCMS を使い始めて、既存の Web サイトを変更しました。urlTitle というカスタム構造フィールドを取るウィジェットを作成しようとしています。イベントのタイトルを取得し、URL フレンドリーにします。これは、urlTitle を説明するチュートリアルです。

JavaScript用に適切に記述された正規表現があります。私の問題は、速度で同じ正規表現を使用しようとすると、いくつかの問題が発生することです。

チュートリアルの JavaScript は次のとおりです。

<script>
    function updateDisplayURLTitle(){

        // get the title entered by the user
        var plainTitle = dojo.byId("title");    

        // make a friendly url
        var urlTitle = plainTitle.value.toLowerCase();
        urlTitle= urlTitle.replace(/^\s+|\s+$/g,"");
        urlTitle = urlTitle.replace(/[^a-zA-Z 0-9]+/g,' '); 
        urlTitle = urlTitle.replace(/\s/g, "-");
        while(urlTitle.indexOf("--") > -1){
            urlTitle = urlTitle.replace("--",'-');  
        }

        // set the values of the display place holder and the custom field
        // the   is to hold the div open
        dojo.byId("displayURLTitle").innerHTML = urlTitle;
        dojo.byId("urlTitle").value=urlTitle;
    }

    // attach this the text1 field onchange
    dojo.connect(dojo.byId("title"), "onchange", null, "updateDisplayURLTitle");

    // populate the field on load
    dojo.addOnLoad(updateDisplayURLTitle);

</script>
<div id="displayURLTitle" style="height:20px"> </div>

次に、ウィジェットの速度コードを次に示します。

#set($nowsers = $date.format('yyyyMMddHHmmss', $date.getDate()))
#set($con = $dotcontent.pull("+structureName:calendarEvent +(conhost:48190c8c-42c4-46af-8d1a-0cd5db894797 conhost:SYSTEM_HOST) +calendarEvent.startDate:[$nowsers TO 21001010101000]",1,"calendarEvent.startDate"))
    <ul>
    #foreach($event in $con)
        <li>
           <a href="events/$event.urlTitle?id=$event.identifier">$event.title</a>
            <p> $event.description</p>
        </li>

#set($temp = $event.title.toLowerCase())
#set($temp = $temp.replaceAll('/^\s+|\s+$/g', ""))
#set($temp = $temp.replaceAll('/[^a-zA-Z 0-9]+/g', " "))
#set($temp = $temp.replaceAll('/\s/g', "-"))
$temp


$temp
#end

私の目標は、javascript からの正規表現を速度で動作させることです。今のところうまくいかず、私は正規表現にそれほど熟練していません。これまでのところ、私の研究ではどこにも導かれていません。

私が理解できないもう1つのことは、が何をするか/gです。どの正規表現リソース Web サイトでも見つかりません。

4

1 に答える 1

0

私はそれを考え出した。エスケープ文字/が正規表現パターンの前にあり、/ gがパターンの失敗を引き起こしていたことが判明したため、速度で使用される方法では必要ないはずです。

于 2013-01-11T23:01:37.343 に答える