JQuery-切片/删除-ID或类名中的特殊字符

JQuery-切片/删除-ID或类名中的特殊字符,jquery,Jquery,对于日语,我正在尝试从后端动态添加日语 我想忽略那些特殊的角色,因为我正在 是否可以删除-(スーペリアルーム)来自高级客房-(スーペリアルーム)并仅获得高级客房 我需要输出为id=“上级房间” HTML: <div id =superior-room-(スーペリアルーム)" class="list-item"> <p>Title</p> </div> var message = ''; var numA

对于日语,我正在尝试从后端动态添加日语

我想忽略那些特殊的角色,因为我正在

是否可以删除
-(スーペリアルーム)来自
高级客房-(スーペリアルーム)
并仅获得
高级客房

我需要输出为id=“上级房间”

HTML:

    <div id =superior-room-(スーペリアルーム)" class="list-item">
      <p>Title</p>
    </div>
    var message = '';
    var numAvailableRooms;
    var roomContianerId = $('.list-item').attr('id');

    if (numAvailableRooms < 100) {
      message = '50 rooms left!';
    } else {
      message = 'High demand!';
    }

    if (message == '') {
      $('#' + roomContianerId + ' .demand-message').hide();
    } else {
      $('#' + roomContianerId + ' .demand-message').show();
      $('#' + roomContianerId + ' .demand-message').html(message);
    }

使用jQuery只能在页面加载后更新,要更新,可以使用method。首先,使用id属性获取所有元素(use),并使用回调方法迭代和更新id

$('[id]').attr('id', function(i, id){
    // replace all character except word char, digit and -
    // using negated character class in regex
    return id.replace(/[^\w\d-]/g, '');
});

要使其完全有效,请参阅:


使用
pop
split
可以获得新id,而无需(スーペリアルーム) 并将新id设置为div,如下所示

var id=$('div').attr('id');
var arr=id.split(“-”);
//从数组中删除最后一个元素
var popItem=arr.pop();
//将数组更改回字符串并替换为-
var result=arr.toString().replace(',','-');
//为div提供新ID
$('div').attr('id',result)
console.log($('div').attr('id'));


您可以使用javascripts splice在hypen(-)的最后一次出现时进行拆分

var str=“高级客房-(スーペリアルーム)";
var idx=“高级客房-(スーペリアルーム)“.lastIndexOf('-');

console.log(str.split(“”).splice(0,13).join(“”));
小心:
id=superior room-
你缺少一个开口
$('[id]').attr('id', function(i, id){
    // replace all character except word char, digit and -
    // using negated character class in regex
    return id.replace(/[^\w\d-]/g, '');
});
$('[id]').attr('id', function(i, id){
    return id.replace(/^[^a-z]+|[^\w:.-]+/gi, "");
});